more refactored - now different shaders possible for objects