added user input + validation