reworked directory struct