wrote some tests, and a new valid? predicate