Make __init__ args required

Move the default selection choices into a separate
factory function.