finished all tests and most of the documentation