Everything required up until first input implemented.