slowly getting free monad post into shape