Complete refactor of Application library. Now events based and uses Controller lib modifications.