could this(22, 26-30) just become

    configuration = (config_file || Hash.new).with_indifferent_access