Code cleanup

- Cleaned up code
- Removed previous read logic (will be added back in later)
- Used a more reliable "loop forever" mechanism
- Updated code to be async
Can you use `items` instead: https://www.npmjs.org/package/items