make PromptDirectory be extensible