finished linked queue implementation