improved Queue