Wrapped channel waiting in for loop and select statement.

This is so that more channels that main needs to deal with can be added.
Added select case for errors with the watcher