updated documentation, still needs some work