When implementing new record types, there is a lot of place that related logic needs to go, some of which is duplicated. (See: #131) We should look at how we can improve on this to bring all the handling for a given record type into 1 place.