better validation and specs