Upgrade abstraction in BalloonGameEngine + Fix singleton to lazy initialization