abstracted command executor