split the dataaccess module into several sub-modules