generalised file