add cache to Material class