Start to lock down types where possible and clear up relationships. currently building untested but decent looking model.