Refactored for extensions. Extensions are simple independent modules outside the plugin core code that performs a specific function.
Added following extensions to the plugin,
- Polling (a different technique for detecting attrchange)
- Disconnect
- Re-connect
- Remove