public Object execute() {
            // in C++, you do something like --- return receiver->action( args );
            try {
                return action.invoke(receiver, args);
            } catch (IllegalAccessException e) {
                System.out.println(e);
            } catch (InvocationTargetException e) {
                System.out.println(e);
            }
            return null;
        }