#13: Command pattern third draft