redesign: adding IO to cmds

Its optional, but if IO given, log msgs showing cmd details.

@jcredding ready for review.