update OO priciple