Hmm, it should be construct-only. If it isn't then that's a bug :) I'm handling the covered_paths-already-set case for the sake of robustness in case something goes wrong, however an assert is probably better for that one :)