valid, now to tidy up