River can now run vertically, changed lots of begin()/end() to non-member functions