use a blueprint
use an app factory