broke up template params into objects/classes