Feature/required

provides the 'required' attribute. Check with default value is done at instance creation. I'll amend this PR so that it's done at copilation.