         }
     }
     
-    var mainWaveWidth: CGFloat = 2.0
+    private let mainWaveWidth: CGFloat = 2.0
     
-    var decorativeWavesWidth: CGFloat = 1.0
+    private let decorativeWavesWidth: CGFloat = 1.0
     
-    var idleAmplitude: CGFloat = 0.01
+    private let idleAmplitude: CGFloat = 0.01
     
-    var frequency: CGFloat = 1.2
+    private let frequency: CGFloat = 1.2
     
     internal private(set) var amplitude: CGFloat = 1.0
     

    
    //
    
    var waveHeight: CGFloat!
    var waveWidth: CGFloat!
    var waveMid: CGFloat!
    var maxAmplitude: CGFloat!
    
    // Sample Data
    
    var waveSampleCount = 0
    
    var waveSamples = [CGFloat]()
    
    var waveTotalCount: CGFloat!
    
    var waveSquareWidth: CGFloat = 2.0
    
    var waveGap: CGFloat = 1.0
    
    var maxSquareWaveLength = 256
    
    var maxTime = 60
    
    var fps = 6
    
    //



final class Waver: UIView {
    
    private var displayLink: CADisplayLink?
    
    private let numberOfWaves: Int = 5
    
    private let waveColor = UIColor.yepTintColor()
    
    private var phase: CGFloat = 0
    
    private var presented = false
    
    var level: CGFloat = 0 {
        didSet {
