Add more checks on setting a alternative start state default
Require using set_default_start_state to set the default
Use a property setter instead of a method