playing w/ StateT over IO but I think that may be wrong.  Seems like the fact that my state is burried in the faucet type makes it hard to find a function a -> StateT...