added a shader manager and really modularized shader and vertex definitions