Handle more than base types, and handle all types in the same fashion