fix so many bugs