change version constraints
add model validation and clean up tests