Build, don't run
Replace callback with deferred
Make routes their own objects
Route route