inline destructor
inline dtor
fix initialize order
replace inheritance hierarchy for materials with std::function
use Material directly in GeometricPrimitive
use Material per value
use Material by value
use boost::optional
change class to struct
ignore tags