Weakly held opinion: Would be better to pass in $guid in via getPath(). It would allow using one instance as a service for mapping any needed during a request. You'd lose __toString but it seems worth it. As is one instance can only model a single directory.