Application which drives the program. And let's say during execution of the program, it makes regular calls to a class library I have. Now depending on the response from the library, it will change the state of the program. Application.stateChange(). I felt iffy about this because it means Application calls the library and the library calls Application. Is a better way to do this just that the library returns a status code?