update for further encapsulation