diff --git a/docs/getting-started.rst b/docs/getting-started.rst
index 5d3b67bb49e80178f2d79ad274e9f0b80da877a7..25d17af3566728bd9337251339960159ca476d76 100644
--- a/docs/getting-started.rst
+++ b/docs/getting-started.rst
@@ -108,7 +108,7 @@ A quick guide for which ``#include <...>`` directives are commonly needed:
     Umbrella header for all built-in mesh algorithms. 
     Individual algorithms can be found in ``polymesh/algorithms/*``.
 
-``polymesh/algorithms/properties.hh``
+``polymesh/properties.hh``
     Basic topological and geometrical properties like face area, valence, and angle defect.
 
 ``polymesh/objects.hh``
diff --git a/src/polymesh/Mesh.hh b/src/polymesh/Mesh.hh
index a24298eae05702aca18b15da0e912522f71a6b6d..42c2690620da9644f2bf10eaa1bcf8ffe02235d0 100644
--- a/src/polymesh/Mesh.hh
+++ b/src/polymesh/Mesh.hh
@@ -28,8 +28,8 @@ namespace polymesh
  *  * Primitives can be removed via [primitive]().remove(...)
  *    (removed primitives are invalidated (flagged for removal). call compactify() to remove them)
  *
- *  * `for (auto h : [primitive]())` iterates over _all_ primitives, including invalid ones
- *    (`for (auto h : valid_[primitive]())` skips over invalid ones)
+ *  * `for (auto h : [primitive]())` iterates over primitives (skipping invalid ones)
+ *    (`for (auto h : valid_[primitive]())` is slightly faster and includes invalid ones)
  *
  *  * low-level operations can be performed by accessing low_level_api(mesh)
  *
diff --git a/src/polymesh/ranges.hh b/src/polymesh/ranges.hh
index f44526203dc70f6aa7946ea946cd9423e69259c6..9a6b7befaab723def05a48446205dca75b078e1c 100644
--- a/src/polymesh/ranges.hh
+++ b/src/polymesh/ranges.hh
@@ -435,9 +435,11 @@ struct halfedge_collection : smart_collection<Mesh*, halfedge_tag, iterator>
     /// O(valence) computation
     [[deprecated("use pm::are_adjacent instead")]] bool exists(vertex_handle v_from, vertex_handle v_to) const;
 
-    /// Collapsed the given half-edge by removing it, keeping the to_vertex, and creating new triangles
+    /// Collapsed the given half-edge by removing it, keeping the to_vertex
     /// Preserves half-edge properties but not face or vertex ones
-    /// Similar to a vertex collapse of the `from` vertex with triangulation towards `to`
+    /// This function never creates, only deletes faces, edges, vertices (depending on case)
+    /// NOTE: this should work for all topologies as long as the result is manifold
+    ///       can be checked with pm::can_collapse(h)
     void collapse(halfedge_handle h) const;
 
     /// Splits this half-edge in half by inserting a vertex (which is returned)