merge from RubyLouvre/avalon