```ruby
# frozen_string_literal: true

require_relative 'event_definition'
require_relative 'state_definition'
require_relative 'state_parser'
require_relative 'transition'

module FiniteMachine
  # A class reponsible for building transition out of parsed states
  #
  # Used internally by {DSL} to
  #
  # @api private
  class TransitionBuilder
    # Initialize a TransitionBuilder
    #
    # @example
    #   TransitionBuilder.new(machine, {})
    #
    # @api public
    def initialize(machine, attributes = {})
      @machine = machine
      @attributes = attributes
      @event_definition = EventDefinition.new(machine)
      @state_definition = StateDefinition.new(machine)
    end

    # Creates transitions for the states
    #
    # @example
    #   transition_builder.call([:green, :yellow] => :red)
    #
    # @param [Hash[Symbol]] states
    #   The states to extract
    #
    # @return [self]
    #
    # @api public
    def call(states)
      StateParser.parse(states) do |from, to|
        @attributes.merge!(states: { from => to })
        transition = Transition.new(@machine.env.target, @attributes)
        name = @attributes[:name]
        silent = @attributes.fetch(:silent, false)

        @machine.events_map.add(name, transition)

        next unless @machine.auto_methods?

        unless @machine.respond_to?(name)
          @event_definition.apply(name, silent)
        end
        @state_definition.apply({ from => to })
      end
      self
    end
  end # TransitionBuilder
end # FiniteMachine
```

Change to rename param to better express intent
user
```ruby
# frozen_string_literal: true

require_relative 'event_definition'
require_relative 'state_definition'
require_relative 'state_parser'
require_relative 'transition'

module FiniteMachine
  # A class reponsible for building transition out of parsed states
  #
  # Used internally by {DSL} to
  #
  # @api private
  class TransitionBuilder
    # Initialize a TransitionBuilder
    #
    # @example
    #   TransitionBuilder.new(machine, {})
    #
    # @api public
    def initialize(machine, attributes = {})
      @machine    = machine
      @attributes = attributes

      @event_definition = EventDefinition.new(machine)
      @state_definition = StateDefinition.new(machine)
    end

    # Converts user transitions into internal {Transition} representation
    #
    # @example
    #   transition_builder.call([:green, :yellow] => :red)
    #
    # @param [Hash[Symbol]] transitions
    #   The transitions to extract states from
    #
    # @return [self]
    #
    # @api public
    def call(transitions)
      StateParser.parse(transitions) do |from, to|
        @attributes.merge!(states: { from => to })
        transition = Transition.new(@machine.env.target, @attributes)
        name = @attributes[:name]
        silent = @attributes.fetch(:silent, false)

        @machine.events_map.add(name, transition)

        next unless @machine.auto_methods?

        unless @machine.respond_to?(name)
          @event_definition.apply(name, silent)
        end
        @state_definition.apply({ from => to })
      end
      self
    end
  end # TransitionBuilder
end # FiniteMachine
```
assistant