add generic to validateable interface