refactored to use new function style
refactored to more functionality, check for all shader engines in scene, etc.