constraint solving, fixed tests, added requirements explicitly