Rewrote methods as a class

- Fix passing of optional parameters
- Added update_channel() method
- Added ability to return different data formats
Merged #1 from bstrdsmkr/master with fixes