patched the add function and added supporting function, answered comment regarding printtouser