validation infrastructure added and passing tests