Why require an array? Why not allow this to work on array-like objects?