implement state tracking for channels
use UTF-8 for connections.. should this be a setting eventually?