add concept of material