rewrite to simplify how path tracking works and use the new path channel pattern