Updated, allows user-input, one single add function