public int run() {
        reset();

        boolean finished = false;
        while (!finished) {
        	updateSearchBox();
        	listProducts();
        	draw();

            String option = getInput();
            if (option.equals("<")) {
                finished = true;
            } else if (option.startsWith("p")) {
				option = option.substring(1, option.length());
				curPage = Integer.parseInt(option);
			} else if (option.equals("s1")) {
            	cursorAt = 0;
            	searchTerm1 = "";
            	updateSearchBox();

            	draw();

            	searchTerm1 = getInput();
            	if (searchTerm1.equals("<")) {
            		finished = true;
            	}
            } else if (option.equals("s2")) {
            	cursorAt = 1;
            	searchTerm2 = "";
            	updateSearchBox();

            	draw();

            	searchTerm2 = getInput();
            	if (searchTerm2.equals("<")) {
            		finished = true;
            	}
            } else {
            	if (cursorAt == 0) {
            		searchTerm1 = option;
            	} else if (cursorAt == 1) {
            		searchTerm2 = option;
            	}
            }
        }

        return CUSTOMER;
    }