Move more functionality into Metadata Model classes to ensure data is available and better passable between functions.