Initial commit, test suite and docs.