diff --git a/README.md b/README.md
index 26ed01e..f49b495 100644
--- a/README.md
+++ b/README.md
@@ -11,7 +11,7 @@
 
 ----------
 ## How to use
-* Step-by-step instruction are provided in [RocketMQ Go Client Introduction](https://github.com/apache/rocketmq-client-go/doc/Introduction.md)
+* Step-by-step instruction are provided in [RocketMQ Go Client Introduction](./doc/Introduction.md)
 * Consult [RocketMQ Quick Start](https://rocketmq.apache.org/docs/quick-start/) to setup rocketmq broker and nameserver.
 
 ----------
diff --git a/core/api.go b/core/api.go
index 39240ba..bf38a78 100644
--- a/core/api.go
+++ b/core/api.go
@@ -22,8 +22,8 @@
 	return GetVersion()
 }
 
-// NewProduer create a new producer with config
-func NewProduer(config *ProducerConfig) Producer {
+// NewProducer create a new producer with config
+func NewProducer(config *ProducerConfig) Producer {
 	return newDefaultProducer(config)
 }
 
@@ -56,7 +56,7 @@
 	return newPushConsumer(config)
 }
 
-// ConsumerConfig define a new conusmer.
+// ConsumerConfig define a new consumer.
 type ConsumerConfig struct {
 	GroupID             string
 	NameServer          string
diff --git a/core/queue_selector_test.go b/core/queue_selector_test.go
index 06743b4..e9a68ee 100644
--- a/core/queue_selector_test.go
+++ b/core/queue_selector_test.go
@@ -19,7 +19,7 @@
 	return m.selectRet
 }
 
-func TestWraper(t *testing.T) {
+func TestWrapper(t *testing.T) {
 	s := &mockMessageQueueSelector{selectRet: 2}
 	w := &messageQueueSelectorWrapper{selector: s, m: &Message{}, arg: 3}
 
diff --git a/core/version.go b/core/version.go
index 2466671..5700714 100644
--- a/core/version.go
+++ b/core/version.go
@@ -16,7 +16,7 @@
  */
 package rocketmq
 
-var GO_CLIENT_VERSION = "Go Client V1.0.0, BuildTime:2018.10.30"
+const GO_CLIENT_VERSION = "Go Client V1.0.0, BuildTime:2018.10.30"
 
 func GetVersion() (version string) {
 	return GO_CLIENT_VERSION
diff --git a/doc/Introduction.md b/doc/Introduction.md
index 3f24e99..c3a825b 100644
--- a/doc/Introduction.md
+++ b/doc/Introduction.md
@@ -29,7 +29,7 @@
         - `sudo sh build.sh` 
         - `cp bin/librocketmq.dylib /usr/local/lib`
         - `sudo mkdir /usr/local/include/rocketmq`
-        - `sudo cp incldue/* /usr/local/incldue/rocketmq/`
+        - `sudo cp include/* /usr/local/include/rocketmq/`
 
 #### Linux
 
@@ -49,7 +49,7 @@
 - Send message
     ```go
     func SendMessagge(){
-        producer := rocketmq.NewProduer(&rocketmq.ProducerConfig{GroupID: "testGroup", NameServer: "localhost:9876"})
+        producer := rocketmq.NewProducer(&rocketmq.ProducerConfig{GroupID: "testGroup", NameServer: "localhost:9876"})
         producer.Start()
         defer producer.Shutdown()
         fmt.Printf("Producer: %s started... \n", producer)
diff --git a/examples/orderproducer/producer.go b/examples/orderproducer/producer.go
index d3ecf42..11fb864 100644
--- a/examples/orderproducer/producer.go
+++ b/examples/orderproducer/producer.go
@@ -83,10 +83,11 @@
 		return
 	}
 
-	producer := rocketmq.NewProduer(&rocketmq.ProducerConfig{
+	producer := rocketmq.NewProducer(&rocketmq.ProducerConfig{
 		GroupID:    groupID,
 		NameServer: namesrvAddrs,
 	})
+  
 	producer.Start()
 	defer producer.Shutdown()
 
diff --git a/examples/producer.go b/examples/producer.go
index a6c801c..98a45b0 100644
--- a/examples/producer.go
+++ b/examples/producer.go
@@ -28,7 +28,7 @@
 }
 
 func SendMessage() {
-	producer := rocketmq.NewProduer(&rocketmq.ProducerConfig{GroupID: "testGroup", NameServer: "localhost:9876"})
+	producer := rocketmq.NewProducer(&rocketmq.ProducerConfig{GroupID: "testGroup", NameServer: "localhost:9876"})
 	producer.Start()
 	defer producer.Shutdown()
 
