distribute options
support default order.  -- experiment
introspectable
tiny annotated option check
move to utils.py