Making the InternalWave code more object oriented before I progress too deep.