annotate models, generate session model, and write tests for session model, also add factory for session model