updated documentation and functionality