modified model so that constructor is private. new instances are created via 'create' static function. This will allow future changes for better control over blacklisted  variables, datetime control, etc.