Command query responsibility segregation