add some method and update documentation