Add Material interface

Fix stupid bug

Add material package with interfaces

Fix license

Extend Material