Refactor vector usage, extract shaders to new file