added canonical_path override