Added some more OO principles and controller-based logic to the rivershell script