def initialize_states(object, options = {})
assert_valid_keys(options, :static, :dynamic, :to)
options = {:static => :force, :dynamic => true}.merge(options)
each_value do |machine|
machine.initialize_state(object, :force => options[:static] == :force, :to => options[:to]) unless machine.dynamic_initial_state?
end if options[:static]
result = yield if block_given?
each_value do |machine|
machine.initialize_state(object, :force => options[:dynamic] == :force, :to => options[:to]) if machine.dynamic_initial_state?
end if options[:dynamic]
result
end