added the general feature return 0