Changes:
1. Add communication module
2. Added registry
3. Refactored code