diff --git a/src/Particle/ParticleBase.hpp b/src/Particle/ParticleBase.hpp
index 0bb11a7ac1a177a0af914f5e99fe41d1abaca88d..c73c97a0eb9f3ecbfea79ad5e853aab180d96fad 100644
--- a/src/Particle/ParticleBase.hpp
+++ b/src/Particle/ParticleBase.hpp
@@ -112,10 +112,13 @@ namespace ippl {
         }
 
         // set the unique ID value for these new particles
+        auto pIDs = ID.getView();
+        auto nextID = this->nextID_m;
+        auto numNodes = this->numNodes_m;
         Kokkos::parallel_for("ParticleBase<PLayout, Properties...>::create(size_t)",
                              Kokkos::RangePolicy(localNum_m, nLocal),
-                             KOKKOS_CLASS_LAMBDA(const std::int64_t i) {
-                                 ID(i) = this->nextID_m + this->numNodes_m * i;
+                             KOKKOS_LAMBDA(const std::int64_t i) {
+                                 pIDs(i) = nextID + numNodes * i;
                              });
         nextID_m += numNodes_m * (nLocal - localNum_m);
 
diff --git a/src/Particle/ParticleSpatialLayout.hpp b/src/Particle/ParticleSpatialLayout.hpp
index 4480d033b14b247b2f483c5258c0bd719fc32d2c..d25510ff0e50a92c92af017a3f637ecd779bad51 100644
--- a/src/Particle/ParticleSpatialLayout.hpp
+++ b/src/Particle/ParticleSpatialLayout.hpp
@@ -158,12 +158,13 @@ namespace ippl {
         IpplTimings::startTimer(destroyTimer);
 
         size_type invalidCount = 0;
+        auto pIDs = pdata.ID.getView();
         Kokkos::parallel_reduce(
             "set/count invalid",
             localnum,
             KOKKOS_LAMBDA(const size_t i, size_type& nInvalid) {
                 if (invalid(i)) {
-                    pdata.ID(i) = -1;
+                    pIDs(i) = -1;
                     nInvalid += 1;
                 }
             }, invalidCount);