- apply concept of commands and queries