entity product refactor 3.0