use ActiveSupport::OrderedOptions