use Dequeue instead of List
implement draw() without exception