fileIO is the only thing that needs a callback.. also fileIO might as well be async