improve sub_mask