add csw module. tests for caching, not yet for requesting