implement Pull()