add Command-pattern