Start 6.0.0
- Refractor internal api to use abstract User and Channel, makes cleaner and removes need to depend on Utility class
- Break things into sub-classes, although may restore back