implement 'materialized paths' for comments to allow for arbitrarily deep nesting
refactor