      - parameter presenterViewController: The controller which is going to present the alert.
      - retuns: Observable AlertManagerOption
      */
-    public func alert(title title: String?, message: String? = nil, alertOptions: [AlertOption]?, hasCancel: Bool = false, preferredStyle: UIAlertControllerStyle = .Alert, presenterViewController: UIViewController) -> Observable<AlertManagerOption> {
+    public func alert(title title: String?, message: String? = nil, alertOptions: [AlertOption]?, hasCancel: Bool = false, preferredStyle: UIAlertControllerStyle = .Alert, presenterViewController: UIViewController?) -> Observable<AlertManagerOption> {
 
         return Observable.create({ (observer) -> Disposable in
             let alertController = UIAlertController(title: title, message: message, preferredStyle: preferredStyle)

        })
    }

    public func alert(title title: String?, message: String? = nil, options: [String]? = nil, hasCancel: Bool = false, preferredStyle: UIAlertControllerStyle = .Alert, presenterViewController: UIViewController) -> Observable<AlertManagerOption> {

        var alertOptions: [AlertOption]?
        if let options = options {

     - parameter presenterViewController: The controller which is going to present the error alert.
     - retuns: Observable AlertManagerOption
     */
    public func error(errorType: ErrorType, preferredStyle: UIAlertControllerStyle = .Alert, presenterViewController: UIViewController? = nil) -> Observable<AlertManagerOption> {
        return Observable.create({ (observer) -> Disposable in
            let error = translateMoyaError(errorType)

