TODO
fix test case