backend data operation