Basic version + documentation + tests.