Some of the issues in the current code are as follows:
- Not using ES6+ syntax such as: arrow functions, string interpolation, classes/modules, class inheritance to avoid duplication of code, Set/Map datastructures.
- Use of default values instead of testing for undefined as in ES5.
- Exposing functions in the global scope.
Cleaned up code should be easy enough for someone to extend and build their own app(s). It should also be possible to build apps that combine more than one app - this can be achieved by extracting the app-specific logic into classes and having the OVE-init outside of it.