Broken stuff.
Addn sign in feature.
Add sign out feature.
Add some helpers and decoupling.
Some more decoupling.
Merge branch 'feature/sign-in-out'