rewrite queue list implemention