re-factor Arguments class to support list of listeners