return 0 if bad ID