Waves implementation