refactor

move product custom directive into a new module with a dependency