begin support for command pattern