Switched to using channels, might be a bit more idiomatic