Preparer handles querying
Prepare creates a new query type
Query represents an environmental query
Apply is a nop for queries. Because HasChanges always returns false this should never be executed.
HasChanges returns true if changes are required as determined by the the most recent run of check.
Messages returns a summary of the first execution of check and/or apply. Subsequent runs are surpressed.