Generalize a little, get delete working