Major refactoring, enable description of application's API