clean code, and more test