remove some liftIOs and use Control.Concurrent.Lifted; add a delay before sending USER/NICK lines to prevent instant disconnect on some servers; add an input listener that automatically attempts to rejoin channels when kicked; implement some code to change the bots nick name every hour as a proof of concept