even better.
fix compile errors.
fix tests.
fix tests.
add licence header