Use provider for modularity.  Add router to handle templates.