updated with user inputs