other class added and a few bug fix