more tests and less code