Reasoning layer