rejiggered datasource handling to use singleton pattern rather than @Inject, started view* stuff