added material cache