Apply Reactor & Singleton pattern
Merge branch 'develop'