add Singleton Interface
Merge branch 'feature/lazy_load'