beginning of refactor to pull product context out