modefied by zs