cleaner and faster for SIMD