#5 Why it's not singleton? - Migrate Viewport to singleton pattern. Update documentation.