add test set up and some unit test