Added a few comments, and dynamic user input