refactoring
add an option to exec an arbitrary command