What if the visitor uses the query builder instead? As said above, logic is currently mixed between this class and the visitor.