Can you add a comment about what the possible types of `location` are? It's not clear that you're doing this because location might be a `BlockLocator`, might be a `Location` compatible thing, or might be an actual `Location`