base data manipulation