Tidy up app.model() to remove duplicate & recusrive call