added foldM for IterT