fix so many bugs....