update OO Priciple