added some more infrastructure around fragment identifiers