why does this return an array?