fix many bugs add modify many parts