Refactor classes breaking them up internally into categories