We should use a direct buffer for IO