major refactor, add products, stable