add simple singleton pattern
Merge branch 'feature-singleton' into develop