-  reworked the pipeline so we can now switch modes
- added self shader