restore do-notation for non-ix monads
reorganize