Fix: make prototype callback chain simpler