ruby 3 tier