Basic functionality implemented and speced. Documentation WIP