abstract pull