#3 inproove unit test
#3 resolve conflict