changes to observable implementation
modelable trait: accessors, mutators and validators for objects which represent modelable data