Add placeholder for std::make_unique
Add surface base class
Add surface_primitive class.