add jni io layer