- now supports setting master page
- did some application refactoring to use promises