seperated shader loading from rendering