handle arbitrary arrays