fix many bugs :)))