split ir into it's own header/source file