big refactor, moved dependency injection, added authentication manager, modified data access layers