add queue function