entity product refactor 3.1