WIP. Almost to a completed state.