added shader reloading, it probably has a memleak or a bug or something, but so far it works