Refactored out model selection

Also began implementing water shader, however, camera view seems to be
incorrect