updated, allow user input and 1 add function