Better way to bind events to custom player