This is a bit inefficient: there is no need to build full `[x.extract() for x in self]` list if we're only interested in a first value