split IR constraints into a seprate function. Makes code more readable.
Started implementation of comprehensive testing framework.
Changed name