add functions needed for assignment