finished Queue implementation