Initial 3.0 rewrite
Dependency cleanup
Improve testsuite with user error tests