added middleman as submodule for better control