update documentation and add user guide