make sure primitive types and S3 inheritance is maintained correctly. - [ ] This is done loosely in 0.2.x but need - [ ] to do more robustly in 0.3.x