update code fix bugs