many bug fix 2
many bug fix 3