smaller codebase; clean up; documentation; better corner cases handling; wrong tree branch size bugfix; more robust; c++03 friendly; new C API; new sample