Hackathon justin

This is pull request for work started on Hackathon, mainly improving Model class with new coding convention of ModelComponent (e.g. replacing the old property style with the new property style). This also deals with a bunch of issues: #95, #99, #100, #101, #102.
Can you remove `setNull()` altogether from the class now? I don't think there is any reason to keep it around if it is empty.