implemented iterator joiner
changed way light passed into shaders