Added a StatusProvider so it can be used by other apps. And Refactored alot of code to make it more centralized.