Add validation support and more spec coverage