added support for custom user model