cleaned up js, implemented gradients, still needs touch detection