finished everything unto user input