TODO
fix minor bug