direct method