starting adding validations/access restrictions to model layer, added documentation