diff --git a/webmagic-extension/src/main/java/us/codecraft/webmagic/model/ModelPipeline.java b/webmagic-extension/src/main/java/us/codecraft/webmagic/model/ModelPipeline.java
index c9f67dc..84db455 100644
--- a/webmagic-extension/src/main/java/us/codecraft/webmagic/model/ModelPipeline.java
+++ b/webmagic-extension/src/main/java/us/codecraft/webmagic/model/ModelPipeline.java
@@ -2,6 +2,7 @@ package us.codecraft.webmagic.model;
import us.codecraft.webmagic.ResultItems;
import us.codecraft.webmagic.Task;
+import us.codecraft.webmagic.model.annotation.ExtractBy;
import us.codecraft.webmagic.pipeline.Pipeline;
import java.lang.annotation.Annotation;
diff --git a/webmagic-extension/src/main/java/us/codecraft/webmagic/model/PageModelExtractor.java b/webmagic-extension/src/main/java/us/codecraft/webmagic/model/PageModelExtractor.java
index 0207b7a..445bdd9 100644
--- a/webmagic-extension/src/main/java/us/codecraft/webmagic/model/PageModelExtractor.java
+++ b/webmagic-extension/src/main/java/us/codecraft/webmagic/model/PageModelExtractor.java
@@ -2,6 +2,7 @@ package us.codecraft.webmagic.model;
import org.apache.commons.lang3.StringUtils;
import us.codecraft.webmagic.Page;
+import us.codecraft.webmagic.model.annotation.*;
import us.codecraft.webmagic.selector.*;
import java.lang.annotation.Annotation;
diff --git a/webmagic-extension/src/main/java/us/codecraft/webmagic/model/ExtractBy.java b/webmagic-extension/src/main/java/us/codecraft/webmagic/model/annotation/ExtractBy.java
similarity index 92%
rename from webmagic-extension/src/main/java/us/codecraft/webmagic/model/ExtractBy.java
rename to webmagic-extension/src/main/java/us/codecraft/webmagic/model/annotation/ExtractBy.java
index 661fd67..af8946a 100644
--- a/webmagic-extension/src/main/java/us/codecraft/webmagic/model/ExtractBy.java
+++ b/webmagic-extension/src/main/java/us/codecraft/webmagic/model/annotation/ExtractBy.java
@@ -1,4 +1,4 @@
-package us.codecraft.webmagic.model;
+package us.codecraft.webmagic.model.annotation;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
diff --git a/webmagic-extension/src/main/java/us/codecraft/webmagic/model/ExtractBy2.java b/webmagic-extension/src/main/java/us/codecraft/webmagic/model/annotation/ExtractBy2.java
similarity index 91%
rename from webmagic-extension/src/main/java/us/codecraft/webmagic/model/ExtractBy2.java
rename to webmagic-extension/src/main/java/us/codecraft/webmagic/model/annotation/ExtractBy2.java
index 55d5dfa..f68b7d6 100644
--- a/webmagic-extension/src/main/java/us/codecraft/webmagic/model/ExtractBy2.java
+++ b/webmagic-extension/src/main/java/us/codecraft/webmagic/model/annotation/ExtractBy2.java
@@ -1,4 +1,4 @@
-package us.codecraft.webmagic.model;
+package us.codecraft.webmagic.model.annotation;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
diff --git a/webmagic-extension/src/main/java/us/codecraft/webmagic/model/ExtractBy3.java b/webmagic-extension/src/main/java/us/codecraft/webmagic/model/annotation/ExtractBy3.java
similarity index 91%
rename from webmagic-extension/src/main/java/us/codecraft/webmagic/model/ExtractBy3.java
rename to webmagic-extension/src/main/java/us/codecraft/webmagic/model/annotation/ExtractBy3.java
index 10f6a9f..f3212a6 100644
--- a/webmagic-extension/src/main/java/us/codecraft/webmagic/model/ExtractBy3.java
+++ b/webmagic-extension/src/main/java/us/codecraft/webmagic/model/annotation/ExtractBy3.java
@@ -1,4 +1,4 @@
-package us.codecraft.webmagic.model;
+package us.codecraft.webmagic.model.annotation;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
diff --git a/webmagic-extension/src/main/java/us/codecraft/webmagic/model/ExtractByRaw.java b/webmagic-extension/src/main/java/us/codecraft/webmagic/model/annotation/ExtractByRaw.java
similarity index 93%
rename from webmagic-extension/src/main/java/us/codecraft/webmagic/model/ExtractByRaw.java
rename to webmagic-extension/src/main/java/us/codecraft/webmagic/model/annotation/ExtractByRaw.java
index 5dca8e1..9692732 100644
--- a/webmagic-extension/src/main/java/us/codecraft/webmagic/model/ExtractByRaw.java
+++ b/webmagic-extension/src/main/java/us/codecraft/webmagic/model/annotation/ExtractByRaw.java
@@ -1,4 +1,4 @@
-package us.codecraft.webmagic.model;
+package us.codecraft.webmagic.model.annotation;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
diff --git a/webmagic-extension/src/main/java/us/codecraft/webmagic/model/ExtractByUrl.java b/webmagic-extension/src/main/java/us/codecraft/webmagic/model/annotation/ExtractByUrl.java
similarity index 91%
rename from webmagic-extension/src/main/java/us/codecraft/webmagic/model/ExtractByUrl.java
rename to webmagic-extension/src/main/java/us/codecraft/webmagic/model/annotation/ExtractByUrl.java
index f443c0e..52f4a57 100644
--- a/webmagic-extension/src/main/java/us/codecraft/webmagic/model/ExtractByUrl.java
+++ b/webmagic-extension/src/main/java/us/codecraft/webmagic/model/annotation/ExtractByUrl.java
@@ -1,4 +1,4 @@
-package us.codecraft.webmagic.model;
+package us.codecraft.webmagic.model.annotation;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
diff --git a/webmagic-extension/src/main/java/us/codecraft/webmagic/model/HelpUrl.java b/webmagic-extension/src/main/java/us/codecraft/webmagic/model/annotation/HelpUrl.java
similarity index 89%
rename from webmagic-extension/src/main/java/us/codecraft/webmagic/model/HelpUrl.java
rename to webmagic-extension/src/main/java/us/codecraft/webmagic/model/annotation/HelpUrl.java
index 808d58a..3437e44 100644
--- a/webmagic-extension/src/main/java/us/codecraft/webmagic/model/HelpUrl.java
+++ b/webmagic-extension/src/main/java/us/codecraft/webmagic/model/annotation/HelpUrl.java
@@ -1,4 +1,4 @@
-package us.codecraft.webmagic.model;
+package us.codecraft.webmagic.model.annotation;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
diff --git a/webmagic-extension/src/main/java/us/codecraft/webmagic/model/TargetUrl.java b/webmagic-extension/src/main/java/us/codecraft/webmagic/model/annotation/TargetUrl.java
similarity index 91%
rename from webmagic-extension/src/main/java/us/codecraft/webmagic/model/TargetUrl.java
rename to webmagic-extension/src/main/java/us/codecraft/webmagic/model/annotation/TargetUrl.java
index 3622f55..c747da6 100644
--- a/webmagic-extension/src/main/java/us/codecraft/webmagic/model/TargetUrl.java
+++ b/webmagic-extension/src/main/java/us/codecraft/webmagic/model/annotation/TargetUrl.java
@@ -1,4 +1,4 @@
-package us.codecraft.webmagic.model;
+package us.codecraft.webmagic.model.annotation;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
diff --git a/webmagic-lucene/src/main/test/java/us/codecraft/webmagic/lucene/OschinaBlog.java b/webmagic-lucene/src/main/test/java/us/codecraft/webmagic/lucene/OschinaBlog.java
index d444275..4480f0b 100644
--- a/webmagic-lucene/src/main/test/java/us/codecraft/webmagic/lucene/OschinaBlog.java
+++ b/webmagic-lucene/src/main/test/java/us/codecraft/webmagic/lucene/OschinaBlog.java
@@ -3,9 +3,9 @@ package us.codecraft.webmagic.lucene;
import org.apache.lucene.document.Document;
import org.apache.lucene.queryparser.classic.ParseException;
import us.codecraft.webmagic.Site;
-import us.codecraft.webmagic.model.ExtractBy;
+import us.codecraft.webmagic.model.annotation.ExtractBy;
import us.codecraft.webmagic.model.OOSpider;
-import us.codecraft.webmagic.model.TargetUrl;
+import us.codecraft.webmagic.model.annotation.TargetUrl;
import us.codecraft.webmagic.pipeline.LucenePipeline;
import java.io.IOException;
diff --git a/webmagic-samples/src/main/java/us/codecraft/webmagic/model/samples/IteyeBlog.java b/webmagic-samples/src/main/java/us/codecraft/webmagic/model/samples/IteyeBlog.java
index 4d01902..4be2ede 100644
--- a/webmagic-samples/src/main/java/us/codecraft/webmagic/model/samples/IteyeBlog.java
+++ b/webmagic-samples/src/main/java/us/codecraft/webmagic/model/samples/IteyeBlog.java
@@ -1,9 +1,9 @@
package us.codecraft.webmagic.model.samples;
import us.codecraft.webmagic.Site;
-import us.codecraft.webmagic.model.ExtractBy;
+import us.codecraft.webmagic.model.annotation.ExtractBy;
import us.codecraft.webmagic.model.OOSpider;
-import us.codecraft.webmagic.model.TargetUrl;
+import us.codecraft.webmagic.model.annotation.TargetUrl;
/**
* @author code4crafter@gmail.com
diff --git a/webmagic-samples/src/main/java/us/codecraft/webmagic/model/samples/News163.java b/webmagic-samples/src/main/java/us/codecraft/webmagic/model/samples/News163.java
index 83f8388..848800d 100644
--- a/webmagic-samples/src/main/java/us/codecraft/webmagic/model/samples/News163.java
+++ b/webmagic-samples/src/main/java/us/codecraft/webmagic/model/samples/News163.java
@@ -3,6 +3,10 @@ package us.codecraft.webmagic.model.samples;
import us.codecraft.webmagic.PagedModel;
import us.codecraft.webmagic.Site;
import us.codecraft.webmagic.model.*;
+import us.codecraft.webmagic.model.annotation.ExtractBy;
+import us.codecraft.webmagic.model.annotation.ExtractBy2;
+import us.codecraft.webmagic.model.annotation.ExtractByUrl;
+import us.codecraft.webmagic.model.annotation.TargetUrl;
import us.codecraft.webmagic.pipeline.ConsolePipeline;
import us.codecraft.webmagic.pipeline.PagedPipeline;
import us.codecraft.webmagic.scheduler.RedisScheduler;
diff --git a/webmagic-samples/src/main/java/us/codecraft/webmagic/model/samples/OschinaAnswer.java b/webmagic-samples/src/main/java/us/codecraft/webmagic/model/samples/OschinaAnswer.java
index df23873..02b8a9c 100644
--- a/webmagic-samples/src/main/java/us/codecraft/webmagic/model/samples/OschinaAnswer.java
+++ b/webmagic-samples/src/main/java/us/codecraft/webmagic/model/samples/OschinaAnswer.java
@@ -3,6 +3,9 @@ package us.codecraft.webmagic.model.samples;
import us.codecraft.webmagic.Page;
import us.codecraft.webmagic.Site;
import us.codecraft.webmagic.model.*;
+import us.codecraft.webmagic.model.annotation.ExtractBy;
+import us.codecraft.webmagic.model.annotation.HelpUrl;
+import us.codecraft.webmagic.model.annotation.TargetUrl;
/**
* @author code4crafter@gmail.com
diff --git a/webmagic-samples/src/main/java/us/codecraft/webmagic/model/samples/OschinaBlog.java b/webmagic-samples/src/main/java/us/codecraft/webmagic/model/samples/OschinaBlog.java
index 817ba44..6409492 100644
--- a/webmagic-samples/src/main/java/us/codecraft/webmagic/model/samples/OschinaBlog.java
+++ b/webmagic-samples/src/main/java/us/codecraft/webmagic/model/samples/OschinaBlog.java
@@ -1,9 +1,9 @@
package us.codecraft.webmagic.model.samples;
import us.codecraft.webmagic.Site;
-import us.codecraft.webmagic.model.ExtractBy;
+import us.codecraft.webmagic.model.annotation.ExtractBy;
import us.codecraft.webmagic.model.OOSpider;
-import us.codecraft.webmagic.model.TargetUrl;
+import us.codecraft.webmagic.model.annotation.TargetUrl;
import us.codecraft.webmagic.pipeline.JsonFilePipeline;
/**