improved module structure