 // MARK: -
 
 public class Parser {
+
+    // MARK: Decodable Parsing Methods
+
     public class func parseDecodable<T: Decodable>(
         data data: NSData,
         forKeyPath keyPath: String)

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

    // MARK: Internal - Helper Methods

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


import Foundation

// MARK: - Decodable

public protocol Decodable {
    init(json: AnyObject) throws
}

// MARK: - Decoder

public protocol Decoder {
    func decodeObject(object: AnyObject) throws -> Any
}

// MARK: - ParserError

public enum ParserError: ErrorType, CustomStringConvertible, CustomDebugStringConvertible {
    case Deserialization(failureReason: String)
