I always see it as a codesmell if you construct a type of object and then set the same few attributes on it afterwards. But I think in this case it is legit due to the `Query` interface.