Why are you just forwarding the call ? Just have gameLoop call the application's onUpdate, etc. Also, why does GameLoop call it onUpdate, Application call it onUpdate but your function is named onFrame?