Why have two separate containers, one for the full path and one for the filename? It seems like this could be one container holding `&[u8]` for both use cases.