Separated rust-event and piston. Used generic key type. Added `CallOnce`, Added `AddAny`