Split definer up & tidy up some types to help with CoreFactoryGentleman