Scenario 1 resolved using callbacks