Changes:
- improved the API
- reduced the CPU usage
- utilized UTF-8 encoding instead of ASCII
- added a binary protocol to check the transmitted data
- improved the coding style to fit conventions
- improved the error handling/messages
- improved the reliability
- other minor improvements
- other minor bugfixes