more functionality, more tests