 }
 
 class KeyPair {
-	let key: String
-	var value: AnyObject?
-	
-	init(key: String) {
+	let key: JSONKey
+	var value: JSONValue?
+	
+	init(key: JSONKey) {
 		self.key = key
 	}
 }

		return a
	}
	
	func handlePop() throws -> AnyObject {
		
		guard stack.count > 0 else {
			throw JSONError.SyntaxError("Malformed JSON string")

		return String(d)
	}
	
	func encodeArray(a: Array<JSONValue>) throws -> String {
		return try encode(a)
	}
	
	func encodeDictionary(d: Dictionary<String, JSONValue>) throws -> String {
		return try encode(d)
	}
	
