View uses singleton pattern