added feature for the command design pattern