a bit better with understanding of user input