add macro mechanism and convert most of the commands to using it
add Pause command