start of major overhaul, starting with the shaders