Split out functionality from mk_property_methods

Without this commit there `mk_property_methods` function is doing too
much at one time.

This commit breaks the referenced functionality out into a
`set_new_component_state` method.