Feature/dynamic prompts

This adds the ability to override #prompts with a subclass method.