many many bug fixed