1. modifying communication for threaded polling
2. adding a lot of comments
3. modifying code for which frinedly names for ports appear