Separate functionality/dependencies (hide functions)

Add IRCIOInterface to avoid showing too much functionality.