     public func loginAction() {
         waterwheel.login(usernameField.text!, password: passwordField.text!) { (success, response, json, error) in
             if (success) {
-                self.removeAnonymousSubviews()
-                self.setupAuthenticatedView()
+                self.hideAnonymousSubviews()
             } else {
                 print("failed to login")
             }

    }

    /**
     Removes authenticated Subviews
     */
    public func removeAuthenticatedSubviews() {
        submitButton.removeFromSuperview()
        submitButton.removeTarget(self, action: #selector(waterwheelLoginViewController.logoutAction), forControlEvents: .TouchUpInside)
    }

    /**
     Adds authenticated Subviews.
     */
    public func addAuthenticatedSubviews() {
        self.view.addSubview(submitButton)
    }

    /**
     Remove anonymous subviews.
     */
    public func removeAnonymousSubviews() {
        usernameField.removeFromSuperview()
        passwordField.removeFromSuperview()
        submitButton.removeFromSuperview()
        submitButton.removeTarget(self, action: #selector(waterwheelLoginViewController.loginAction), forControlEvents: .TouchUpInside)
    }

    /**
     Add Anonymous subviews.
     */
    public func addAnonymousSubviews() {
        self.view.addSubview(usernameField)
        self.view.addSubview(passwordField)
        self.view.addSubview(submitButton)
    }

    /**

    }

    /**
     Lays out the Submit Button
     */
    public func layoutSubmitButton() {
        submitButton.constrainEqual(.LeadingMargin, to: view)
        submitButton.constrainEqual(.TrailingMargin, to: view)
        submitButton.constrainEqual(.BottomMargin, to: passwordField, .BottomMargin, multiplier: 1.0, constant: 55)
