redo ircc faster and more readable