Implement chain::Listen without using RefCell