added MaterialInstance concept