has_app/has_model strike me as a bit odd naming wise, I'd expect a boolean as result, not a model or an app.