finished documentation of state.add which I seem to have lost interest in halfway through the first time I tried...