No BitSet in LoaderOptions. It should be just a JavaBean
diff --git a/src/main/java/org/yaml/snakeyaml/LoaderOptions.java b/src/main/java/org/yaml/snakeyaml/LoaderOptions.java
index 4ab6c12..edf2ce7 100644
--- a/src/main/java/org/yaml/snakeyaml/LoaderOptions.java
+++ b/src/main/java/org/yaml/snakeyaml/LoaderOptions.java
@@ -16,52 +16,43 @@
 
 package org.yaml.snakeyaml;
 
-import java.util.BitSet;
-
 public class LoaderOptions {
-    private final BitSet set;
+    /**
+     * Store context with a Mark to have a better error message. Loader works
+     * 40% slower and it consumes much more memory (default=false)
+     */
+    private boolean withMarkContext = false;
+    private ImplicitMode implicitMode = ImplicitMode.ALWAYS_IMPLICIT_TYPES;
 
-    public enum Mode {
+    public enum ImplicitMode {
         /**
-         * Store context with a Mark to have a better error message. Loader
-         * works 40% slower and it consumes much more memory (default=false)
+         * Disable implicit types when JavaBean is loaded (default).
          */
-        CONTEXT_MARK(0),
+        DYNAMIC_IMPLICIT_TYPES,
         /**
-         * Disable implicit types when JavaBean is loaded (default=true). When
-         * this is present then USE_IMPLICIT_TYPES is ignored.
+         * Enable this when JavaBean has a property which is a generic
+         * collections like Map<String, Integer>
          */
-        DYNAMIC_IMPLICIT_TYPES(1),
+        ALWAYS_IMPLICIT_TYPES,
         /**
-         * When DYNAMIC_IMPLICIT_TYPES is 'false' defines whether to apply the
-         * regular expressions. When implicit types are not used all the scalars
-         * are Strings. Enable this when JavaBean has a property which is a
-         * generic collections like Map<String, Integer>
+         * When implicit types are not used all the scalars are Strings.
          */
-        USE_IMPLICIT_TYPES(2),
-        /**
-         * Enable compact format for JavaBeans
-         */
-        COMPACT_FORMAT(3);
-
-        private final int index;
-
-        private Mode(int index) {
-            this.index = index;
-        }
+        NEVER_IMPLICIT_TYPES;
     }
 
-    public LoaderOptions() {
-        set = new BitSet(5);
-        set.set(Mode.CONTEXT_MARK.index, false);
-        set.set(Mode.DYNAMIC_IMPLICIT_TYPES.index, true);
+    public boolean isWithMarkContext() {
+        return withMarkContext;
     }
 
-    public void setMode(Mode mode, boolean value) {
-        set.set(mode.index, value);
+    public void setWithMarkContext(boolean useContextMark) {
+        this.withMarkContext = useContextMark;
     }
 
-    public boolean hasMode(Mode mode) {
-        return set.get(mode.index);
+    public ImplicitMode getImplicitMode() {
+        return implicitMode;
+    }
+
+    public void setImplicitMode(ImplicitMode implicitMode) {
+        this.implicitMode = implicitMode;
     }
 }
diff --git a/src/main/java/org/yaml/snakeyaml/Yaml.java b/src/main/java/org/yaml/snakeyaml/Yaml.java
index 996157b..2a6cc31 100644
--- a/src/main/java/org/yaml/snakeyaml/Yaml.java
+++ b/src/main/java/org/yaml/snakeyaml/Yaml.java
@@ -288,7 +288,7 @@
      */

     public Object load(Reader io) {

         Composer composer = new Composer(new ParserImpl(new StreamReader(io, loaderOptions

-                .hasMode(LoaderOptions.Mode.CONTEXT_MARK))), resolver);

+                .isWithMarkContext())), resolver);

         constructor.setComposer(composer);

         return constructor.getSingleData();

     }

@@ -304,7 +304,7 @@
      */

     public Iterable<Object> loadAll(Reader yaml) {

         Composer composer = new Composer(new ParserImpl(new StreamReader(yaml, loaderOptions

-                .hasMode(LoaderOptions.Mode.CONTEXT_MARK))), resolver);

+                .isWithMarkContext())), resolver);

         constructor.setComposer(composer);

         Iterator<Object> result = new Iterator<Object>() {

             public boolean hasNext() {

@@ -371,7 +371,7 @@
      */

     public Node compose(Reader yaml) {

         Composer composer = new Composer(new ParserImpl(new StreamReader(yaml, loaderOptions

-                .hasMode(LoaderOptions.Mode.CONTEXT_MARK))), resolver);

+                .isWithMarkContext())), resolver);

         constructor.setComposer(composer);

         return composer.getSingleNode();

     }

@@ -386,7 +386,7 @@
      */

     public Iterable<Node> composeAll(Reader yaml) {

         final Composer composer = new Composer(new ParserImpl(new StreamReader(yaml, loaderOptions

-                .hasMode(LoaderOptions.Mode.CONTEXT_MARK))), resolver);

+                .isWithMarkContext())), resolver);

         constructor.setComposer(composer);

         Iterator<Node> result = new Iterator<Node>() {

             public boolean hasNext() {

@@ -485,7 +485,7 @@
      */

     public Iterable<Event> parse(Reader yaml) {

         final Parser parser = new ParserImpl(new StreamReader(yaml, loaderOptions

-                .hasMode(LoaderOptions.Mode.CONTEXT_MARK)));

+                .isWithMarkContext()));

         Iterator<Event> result = new Iterator<Event>() {

             public boolean hasNext() {

                 return parser.peekEvent() != null;

diff --git a/src/test/java/org/yaml/snakeyaml/LoaderOptionsTest.java b/src/test/java/org/yaml/snakeyaml/LoaderOptionsTest.java
index b12e0cd..f722395 100644
--- a/src/test/java/org/yaml/snakeyaml/LoaderOptionsTest.java
+++ b/src/test/java/org/yaml/snakeyaml/LoaderOptionsTest.java
@@ -22,9 +22,8 @@
 

     public void testGetMode() {

         LoaderOptions defaultOptions = new LoaderOptions();

-        assertTrue(defaultOptions.hasMode(LoaderOptions.Mode.DYNAMIC_IMPLICIT_TYPES));

-        assertFalse(defaultOptions.hasMode(LoaderOptions.Mode.CONTEXT_MARK));

-        assertFalse(defaultOptions.hasMode(LoaderOptions.Mode.USE_IMPLICIT_TYPES));

-        assertFalse(defaultOptions.hasMode(LoaderOptions.Mode.COMPACT_FORMAT));

+        assertFalse(defaultOptions.isWithMarkContext());

+        assertEquals(LoaderOptions.ImplicitMode.ALWAYS_IMPLICIT_TYPES, defaultOptions

+                .getImplicitMode());

     }

 }

diff --git a/src/test/java/org/yaml/snakeyaml/LoaderTest.java b/src/test/java/org/yaml/snakeyaml/LoaderTest.java
index 1c1ead7..6178fc9 100644
--- a/src/test/java/org/yaml/snakeyaml/LoaderTest.java
+++ b/src/test/java/org/yaml/snakeyaml/LoaderTest.java
@@ -54,7 +54,7 @@
 

     public void testCompose2() {

         LoaderOptions options = new LoaderOptions();

-        options.setMode(LoaderOptions.Mode.CONTEXT_MARK, true);

+        options.setWithMarkContext(true);

         Yaml loader = new Yaml(options);

         String yaml = "3";

         ScalarNode node = (ScalarNode) loader.compose(new StringReader(yaml));

diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue67/NonAsciiCharsInClassNameTest.java b/src/test/java/org/yaml/snakeyaml/issues/issue67/NonAsciiCharsInClassNameTest.java
index 523eed8..0554869 100644
--- a/src/test/java/org/yaml/snakeyaml/issues/issue67/NonAsciiCharsInClassNameTest.java
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue67/NonAsciiCharsInClassNameTest.java
@@ -59,7 +59,7 @@
     public void testLoadInvalidPatternTooShort() {

         try {

             LoaderOptions options = new LoaderOptions();

-            options.setMode(LoaderOptions.Mode.CONTEXT_MARK, true);

+            options.setWithMarkContext(true);

             Yaml yaml = new Yaml(options);

             yaml.load(PREFIX + "Acad%9%A9mico {id: 3, name: Foo bar}");

             fail("Illegal hex characters in escape (%) pattern must not be accepted.");

@@ -74,7 +74,7 @@
     public void testLoadInvalidUtf8() {

         try {

             LoaderOptions options = new LoaderOptions();

-            options.setMode(LoaderOptions.Mode.CONTEXT_MARK, true);

+            options.setWithMarkContext(true);

             Yaml yaml = new Yaml(options);

             yaml.load(PREFIX + "Acad%C0mico {id: 3, name: Foo bar}");

             fail("Illegal UTF-8 must not be accepted.");