objectValidate() pretty much looks identical in all subclasses, why not just have it once and parameterise it?