play around with do blocks, fixed liftM2