added DemoMaterial
refactoring base class