Added sign in / out feature, lots of refactoring, yo