optimized + reordered