Organise objects to allow for type to override everything