moved from direct fs access to native-io