Added HasTypeId trait