fix bugs. add some methods