部分实现extract