Split the Tracker and Listener implementation