save 8 bytes per ball struct due to alignment rules