Make type utilities public
Refactor function support