Tidy up the code.
fix bug