partial implementation of grab()