use SoA instead of AoS