#command query responsibility segregation