add queue; improve stack;