Why you removed the inheritance? This provides some checking and logic by default