add a simple thread channel implementation