documentation and method re-writes