Started refactor to make whole system pluggable

- Need to update documents
- Ensure consistent message format