revert to event use
implement RPC prototype