clean code and comment
update test