implemented material class