added user input, basic modes