This look strange. We dont ensure that done is called after we call this ...