Update macros, use rt::io, use iterators for Enum and Cmd defs