Yes, good question. The previous implementation didn't allow for any kind of processing of the value when building the query. I want to call `beginning_of_day`/`end_of_day` on the date entered by the user. My first attempt at this change modified the data structure returned by `query_conditions_mapping` to return a hash of hashes, each of which could specify an optional formatter lamba, which would be called (if present) and passed the value. However, this made the `query_conditions` method more complex, and also made the data structure returned by `query_conditions_mapping` bigger and more complex. I talked the change over with Ben and we decided that we'd be better off just going with the more straightforward approach of losing the common code and building up the query in the child classes.