begin prompt factory