Material System general Improvements
Currently the way the material system works is rather depressing. a collection of functions, and error checking by the classes calling the function.
Let's improve it. I'm a bit rushed as i have a taxi to catch, but we can discuss it soon.