I already have a connect() method in this class, which first instantiates the IRCConnection object. Next the connectToServerAndJoinChannel() performs the next, lower-level operation of connection to the server and joining the channel. These two operations are coupled in such regard, that Joining the channel should only be attempted, after a successfull Connection to server - both operations are asynchronous and are performed in a separate thread.