support empty arrays