Equipping Language Models For Systematic Reasoning