added shaders and device controller