add unit test & read me