removed class data variable, validate function now works using instance variables, now using static instead of self for static variables for inheritance
changed custom_properties to have protected access (so parent Model class can set it), now serializing custom_properties after it is set if it is not already (object or array)
changed edit function to use class variable $this->Post rather than instantiating a new one