many bug fix