object state machin object handl handl illeg argument except bad argument state machin handl object contain model impl facad model element contain handl contain model facad state machin contain contain contain model impl facad model element contain contain contain set contain statemachin invalid object except invalid element except 