refactor out product directives into products.js;