Add version with list monad