refactored R::Material