more tests and design