Appearance
Command Query Separation is a rule stating the function should be either a Command or a Query, but never both.
Changes the state of the system
Returns the state of the system