An abstraction layer for multiple data sources for use with AngularJS