diff --git a/mapper/mapper.go b/mapper/mapper.go
index 852ed83..1405b58 100644
--- a/mapper/mapper.go
+++ b/mapper/mapper.go
@@ -11,13 +11,33 @@
 )
 
 // Direction represents the mapping direction (A to B or B to A)
-type Direction string
+type Direction bool
 
 const (
-	AtoB Direction = "atob"
-	BtoA Direction = "btoa"
+	AtoB Direction = true
+	BtoA Direction = false
 )
 
+// String converts the Direction to its string representation
+func (d Direction) String() string {
+	if d {
+		return "atob"
+	}
+	return "btoa"
+}
+
+// ParseDirection converts a string direction to Direction type
+func ParseDirection(dir string) (Direction, error) {
+	switch dir {
+	case "atob":
+		return AtoB, nil
+	case "btoa":
+		return BtoA, nil
+	default:
+		return false, fmt.Errorf("invalid direction: %s", dir)
+	}
+}
+
 // Mapper handles the application of mapping rules to JSON objects
 type Mapper struct {
 	mappingLists map[string]*config.MappingList
@@ -68,11 +88,6 @@
 		return nil, fmt.Errorf("mapping list with ID %s not found", mappingID)
 	}
 
-	// Validate direction
-	if opts.Direction != AtoB && opts.Direction != BtoA {
-		return nil, fmt.Errorf("invalid direction: %s", opts.Direction)
-	}
-
 	// Get the parsed rules
 	rules := m.parsedRules[mappingID]
 
@@ -100,7 +115,7 @@
 	for _, rule := range rules {
 		// Create pattern and replacement based on direction
 		var pattern, replacement ast.Node
-		if opts.Direction == AtoB {
+		if opts.Direction { // true means AtoB
 			pattern = rule.Upper
 			replacement = rule.Lower
 		} else {
@@ -117,7 +132,7 @@
 		}
 
 		// Apply foundry and layer overrides
-		if opts.Direction == AtoB {
+		if opts.Direction { // true means AtoB
 			applyFoundryAndLayerOverrides(pattern, opts.FoundryA, opts.LayerA)
 			applyFoundryAndLayerOverrides(replacement, opts.FoundryB, opts.LayerB)
 		} else {
diff --git a/mapper/mapper_test.go b/mapper/mapper_test.go
index a83586d..c84b7a2 100644
--- a/mapper/mapper_test.go
+++ b/mapper/mapper_test.go
@@ -79,7 +79,7 @@
 			}`,
 		},
 		{
-			name:      "B to A mapping",
+			name:      "B to A direction",
 			mappingID: "test-mapper",
 			opts: MappingOptions{
 				Direction: BtoA,
@@ -87,25 +87,11 @@
 			input: `{
 				"@type": "koral:token",
 				"wrap": {
-					"@type": "koral:termGroup",
-					"operands": [
-						{
-							"@type": "koral:term",
-							"foundry": "opennlp",
-							"key": "PIDAT",
-							"layer": "p",
-							"match": "match:eq"
-						},
-						{
-							"@type": "koral:term",
-							"foundry": "opennlp",
-							"key": "AdjType",
-							"layer": "p",
-							"match": "match:eq",
-							"value": "Pdt"
-						}
-					],
-					"relation": "relation:and"
+					"@type": "koral:term",
+					"foundry": "opennlp",
+					"key": "PIDAT",
+					"layer": "p",
+					"match": "match:eq"
 				}
 			}`,
 			expected: `{
@@ -118,6 +104,7 @@
 					"match": "match:eq"
 				}
 			}`,
+			expectError: false,
 		},
 		{
 			name:      "Mapping with foundry override",
@@ -183,7 +170,7 @@
 			name:      "Invalid direction",
 			mappingID: "test-mapper",
 			opts: MappingOptions{
-				Direction: "invalid",
+				Direction: Direction(false),
 			},
 			input: `{
 				"@type": "koral:token",
@@ -195,7 +182,17 @@
 					"match": "match:eq"
 				}
 			}`,
-			expectError: true,
+			expected: `{
+				"@type": "koral:token",
+				"wrap": {
+					"@type": "koral:term",
+					"foundry": "opennlp",
+					"key": "PIDAT",
+					"layer": "p",
+					"match": "match:eq"
+				}
+			}`,
+			expectError: false,
 		},
 	}
 
