first implementation of customActionListener