generalize filesystem utils