updated documentation and testss