- added error checking when loading shaders (will throw an error if a duplicate name for a shader or shader program is found)
- refactoring