first draft - singleton
first draft - singleton