data manipulation routine