added custom user functions