Possible refactor (not for now, but for after alpha): introduce a "one time call" function in ServiceLocator that handles binding, calling the code, and then unbinding itself.  I like this pattern, but this could be confusing.