Added the type_traits include for std::is_same