Refactored the auth code to be asynchronous.
Slight refactoring over the implementable interface to allow more control
More refactoring into more suitable naming
Added login procedure
Added basic user info return page