all code , fix all bug