functionizes many things.  adds foundation for reading user input