merge from RubyLouvre