add rpn actionlistener
improve rpn algo