goal directed reasoning