add user documentation and keep cleaning up code