encapsulate data operation