 
 import Foundation
 
-// MARK: -
+// MARK: - Decodable
 
 public protocol Decodable {
     init(json: AnyObject) throws
 }
 
+// MARK: - Decoder
+
 public protocol Decoder {
     func decodeObject(object: AnyObject) throws -> Any
 }
 
-// MARK: -
+// MARK: - ParserError
 
 public enum ParserError: ErrorType, CustomStringConvertible, CustomDebugStringConvertible {
     case Deserialization(failureReason: String)

// MARK: -

public class Parser {
    public class func parseDecodable<T: Decodable>(
        data data: NSData,
        forKeyPath keyPath: String)

        return addProperty(keyPath: keyPath, type: type, optional: optional, decodingMethod: decodingMethod)
    }

    func addProperty(
        keyPath keyPath: String,
        type: ParserPropertyType,
