Add App class for application level management, Add bunch of code refactoring
Fix bunch of bugs, many code refactoring
App prototype finished