support empty file