added support for custom user models