Made DData use constructors not constraints
Added constructor validation