Generalized Datasources, cleaned up namespaces, and added last.fm stub