     return lhs.stringProperty == rhs.stringProperty
 }
 
-private struct ModelWithOptionalStringProperty: Mappable {
-    fileprivate let stringProperty: String?
-    
-    fileprivate enum Key: String, JSONKey {
-        case stringProperty = "stringProperty"
-    }
-    
-    fileprivate init(map: KeyedMapper<ModelWithOptionalStringProperty>) throws {
-        self.stringProperty = map.optionalFrom(.stringProperty)
-    }
-}
-
 class MappableSpec: QuickSpec {
     override func spec() {
         describe("Mappable") {

import Quick
import Nimble
@testable import KeyedMapper

private struct ModelWithDictionaryProperty: Mappable {
    fileprivate let property: NSDictionary
    
    fileprivate enum Key: String, JSONKey {
        case property = ""
    }
    
    fileprivate init(map: KeyedMapper<ModelWithDictionaryProperty>) throws {
        try self.property = map.from(.property)
    }
}

private struct ModelWithStringProperty: Mappable {
    fileprivate let stringProperty: String

                        let JSON: NSArray = [1]
                        
                        do {
                            _ = try ModelWithStringProperty.from(JSON: JSON)
                        } catch let error as MapperError<ModelWithStringProperty> {
                            expect(error) == MapperError.rootTypeMismatchError(forType: ModelWithStringProperty.self, value: JSON, expectedType: [NSDictionary].self)
                        } catch {
                            XCTFail("Error thrown from from(JSON: NSArray) was not a MapperError")
                        }
