struct Version {
  static let major = 0
  static let minor = 1
  static let patch = 0

  static let description = "\(major).\(minor).\(patch)"
}


/// Represents a HTTP Header, Key and Value
public typealias Header = (String, String)

/// Represents a HTTP Request
public protocol RequestType {
  var method:String { get }
  var path:String { get }
  var headers:[Header] { get }
  var body:String? { get }
}


/// Represents a HTTP Response
public protocol ResponseType {
  var statusLine:String { get }
  var headers:[Header] { get }
  var body:String? { get }
}


Switch to a protocol based architecture
Switch to a protocol based architecture

Closes #1
