public function sign_out() {

		if ( !$this->authenticated ) 
		{
			return false;
		}

		// remove the restore login
		\DB::delete( $this->config->get( 'logins.table' ) )
			->where( 'restore_token', $this->restore_key( $this->user ) )
			->run();

		// logout the user
		$this->session->delete( $this->config->session_key );

		// pass the user object through all user hooks
		$this->user = \CCEvent::pass( 'auth.sign_out', $this->user );
		$this->user->save();

		$user_model = $this->config->user_model;

		// create new empty user
		$this->user = new $user_model;

		return $this->authenticated = false;
	}