something of an irc framework