diff --git a/Applications/FileIO/Legacy/createSurface.cpp b/Applications/FileIO/Legacy/createSurface.cpp
index d6aa2684d286cb945361034afd7cc155430406ca..6e8211906e17eb4f6c1632a36d8181842b913a78 100644
--- a/Applications/FileIO/Legacy/createSurface.cpp
+++ b/Applications/FileIO/Legacy/createSurface.cpp
@@ -56,10 +56,9 @@ bool createSurface(GeoLib::Polyline const& ply,
     auto polyline_points = std::make_unique<std::vector<GeoLib::Point*>>();
     GeoLib::GEOObjects geo;
     auto ply_points = ply.getPointsVec();
-    for (auto p : ply_points)
-    {
-        polyline_points->push_back(new GeoLib::Point(*p));
-    }
+    std::transform(ply_points.begin(), ply_points.end(),
+                   std::back_inserter(*polyline_points),
+                   [](auto const* p) { return new GeoLib::Point(*p); });
     std::string ply_name = "temporary_polyline_name";
     geo.addPointVec(std::move(polyline_points), ply_name);
     auto polyline =