Updating Engine with input, main entry, and Applilcation abstraction; need to change handling of input from static