far simpler implementation of fetch-pull