improving the module structure