I think I finally settled on a template / way of doing things