support defining custom types
allow schemas to be loaded from an external file
0.2.1