Initial commit, docs and tests forthcoming.