major revisions and still building the core types