add: login, use class-based view