added type related functionality