add some code for fixed but not completed