Checking in more changes to get this working with multiple data sources + accompany test classes.