Tidy up some parts of the codebase.
Include data source tests for query and initialization.
Put data source to its own package.
Prepare project for multiple packages.