return 0 at last