Command pattern for presentation
initial commit with strategy and command pattern