primitive array support