added generic wave array