tiding up a bit, separating validstate fn
scenarios written down