added general structure and WaveForm Class