Implementing the Material interface