First complete implementation or IR module, no testing done yet.