User input interpolation + general tidy up