Não percebi. O que queria dizer é que isto

    def self.initial_state
        'available'
    end

porque esta string nunca vai mudar de nome porque vai estar guardada noutros sitios. Já a ordem do array pode mudar se acrescentares mais estados.