Move common callback logic to Callback class