side effecty creation rather than pure... will tidy this up but it is actually a bit *easier* to work with right now until I hammock up a better solution