Issue #396 Extensions page

- Update branch with code from extensions branch
- Organize page output into separate methods to each perform specific tasks
- Added singleton get_instance method for initializing the class