moved most methods to ProductContainer