core irc functionality