finished add functions