Make type registration customizable