added OrderVisitor for less branches (no need for the if( ascending) ... )