Well, my appoach is slightly different, I know that ruby can resolv it on fly. But I want to have each file as separate module that can work separatelly and such requirements clearly shows dependencies of such file. So if I want reuse such code I know I must have some kind of message and BuildOrder. Also it allows easier black box testing of public methods. But if it is intention, I am fine with it as long as it is consistent.