more tests and better practices