Tidy up code a little
Add supplied monad with parallel instances