new functions for types