Fleshing out object model, adding validation