minor refactoring: combined addClientActionListener with addClientAction