Initial seperation of BaseType and SchemaType.
Refactored out the schema validation to have a cleaner instantion.