Complete StringWave implementation with test