Abstract out session retriveal
- stub a repository factory
- implement getting a session
- cleanups
- make all calls use new factory
- more refactoring