First version with some bugs, but shaders should be alright