Towards Enhanced Reasoning In Large Language Models