Finished abstracting input and rendering