First push for login refactor