 		let parameters = ["api_token" : token,
 		                  "id": projectID] as [String : Any]
 
-        let path = endpoint.appendingPathComponent("languages/list")
+		let path = endpoint.appendingPathComponent("languages/list")
 		let request = URLRequest.formPost(url: path, fields: parameters)
-		
+
 		responseProcessingDataTask(with: request, resultKey: "languages", completion: completion).resume()
 	}
-	
+
 	/// Expert project translations into a file. The URL to the file is provided in the completion handler and you need to download it.
 	/// - parameter projectID: The project identifier
 	/// - parameter languageCode: The language code to export

		case key_value_json = "key_value_json"
		case json = "json"
	}
	
	// MARK: - Properties
	/// Specify API endpoint
	public let endpoint = URL(string: "https://api.poeditor.com/v2/")!
	
	/// Specify ephemeral URL session
	public lazy var session = {
		return URLSession(configuration: .ephemeral)
	}()
	
	/// API Token to pass with all requests
	let token: String
	
	required public init(token: String)
	{
		self.token = token
	}
	
	// MARK: - Public Interface
	
	/// List projects on POEditor.com
	/// - parameter completion: The completion block receiving an array of dictionaries each describing a project on POEditor.com if successful.
	public func listProjects(completion: WebServiceCompletionHandler<[JSONDictionary]>?)
	{
		let parameters = ["api_token" : token] as [String : Any]

        let path = endpoint.appendingPathComponent("projects/list")
		let request = URLRequest.formPost(url: path, fields: parameters)
		
		responseProcessingDataTask(with: request, resultKey: "projects", completion: completion).resume()
	}
	
	/// Create a new project on POEditor.com
	/// - parameter completion: The completion block receiving Int with the project identifier if successful.
	public func createProject(name: String, completion: WebServiceCompletionHandler<Int>?)

		{
			throw WebServiceError.unexpectedResponse("JSON response did not contain response dictionary")
		}

		if let status = response["status"] as? String, status == "fail"
		{
			let message = response["message"] as? String
			throw WebServiceError.serviceError(message ?? "Unknown Error")
		}

		guard let resultDict = dictionary["result"] as? JSONDictionary else
		{
			throw WebServiceError.unexpectedResponse("JSON response did not contain result dictionary")
		}

		guard let result = resultDict[resultKey] else
		{
			throw WebServiceError.unexpectedResponse("Could not find '\(resultKey)'")
		}

		if let typedResult = result as? T
		{
			return typedResult
