support for user type casting