rewrite product scheme