diff --git a/exporter.go b/exporter.go
index b6fa495902582bc9f3b67fe426fdd19d06c22cfa..0c4f07d32d755ec97510233a3a45205d45ff6f28 100644
--- a/exporter.go
+++ b/exporter.go
@@ -43,25 +43,25 @@ func (re *rsyslogExporter) handleStatLine(buf []byte) {
 	case rsyslogAction:
 		a := newActionFromJSON(buf)
 		for _, p := range a.toPoints() {
-			re.add(p)
+			re.set(p)
 		}
 
 	case rsyslogInput:
 		i := newInputFromJSON(buf)
 		for _, p := range i.toPoints() {
-			re.add(p)
+			re.set(p)
 		}
 
 	case rsyslogQueue:
 		q := newQueueFromJSON(buf)
 		for _, p := range q.toPoints() {
-			re.add(p)
+			re.set(p)
 		}
 
 	case rsyslogResource:
 		r := newResourceFromJSON(buf)
 		for _, p := range r.toPoints() {
-			re.add(p)
+			re.set(p)
 		}
 
 	default:
diff --git a/exporter_test.go b/exporter_test.go
index 729b7bae838a0cef6c362c26206333ed9181f67e..a185f62812b42ea116865477e95e5595e91d5ac4 100644
--- a/exporter_test.go
+++ b/exporter_test.go
@@ -35,7 +35,7 @@ func testHelper(t *testing.T, line []byte, testCase []*testUnit) {
 		var wanted float64
 		switch p.Type {
 		case counter:
-			wanted = item.Val * 2
+			wanted = item.Val
 		case gauge:
 			wanted = item.Val
 		default:
diff --git a/point.go b/point.go
index 726e9a2f5945d029a55749ecc36a350a316f201a..4150c5f376c2b73eaadd9e04ebd49c6667d0eddf 100644
--- a/point.go
+++ b/point.go
@@ -27,24 +27,6 @@ type point struct {
 	LabelValue  string
 }
 
-func (p *point) add(newPoint *point) error {
-	switch newPoint.Type {
-	case gauge:
-		if p.Type != gauge {
-			return ErrIncompatiblePointType
-		}
-		p.Value = newPoint.Value
-	case counter:
-		if p.Type != counter {
-			return ErrIncompatiblePointType
-		}
-		p.Value = p.Value + newPoint.Value
-	default:
-		return ErrUnknownPointType
-	}
-	return nil
-}
-
 func (p *point) promDescription() *prometheus.Desc {
 	return prometheus.NewDesc(
 		prometheus.BuildFQName("", "rsyslog", p.Name),
diff --git a/point_test.go b/point_test.go
index bbf610ff18e3a588d8408be7ee24ddc49bb76b88..a8221a35d970def75bfd357d5c617882560afcae 100644
--- a/point_test.go
+++ b/point_test.go
@@ -6,41 +6,14 @@ import (
 	"github.com/prometheus/client_golang/prometheus"
 )
 
-func TestAddCounter(t *testing.T) {
+func TestCounter(t *testing.T) {
 	p1 := &point{
 		Name:  "my counter",
 		Type:  counter,
 		Value: int64(10),
 	}
 
-	p2 := &point{
-		Name:  "my counter",
-		Type:  counter,
-		Value: int64(5),
-	}
-
-	err := p1.add(p2)
-	if err != nil {
-		t.Error(err)
-	}
-
-	if expect := int64(15); p1.Value != expect {
-		t.Errorf("expected '%d', got '%d'", expect, p1.Value)
-	}
-
-	p3 := &point{
-		Name:  "my gauge",
-		Type:  gauge,
-		Value: int64(10),
-	}
-
-	err = p1.add(p3)
-
-	if err != ErrIncompatiblePointType {
-		t.Errorf("incompatible point types should raise error")
-	}
-
-	if want, got := float64(15), p1.promValue(); want != got {
+	if want, got := float64(10), p1.promValue(); want != got {
 		t.Errorf("want '%f', got '%f'", want, got)
 	}
 
@@ -54,40 +27,14 @@ func TestAddCounter(t *testing.T) {
 	}
 }
 
-func TestAddGauge(t *testing.T) {
+func TestGauge(t *testing.T) {
 	p1 := &point{
 		Name:  "my gauge",
 		Type:  gauge,
 		Value: int64(10),
 	}
 
-	p2 := &point{
-		Name:  "my gauge",
-		Type:  gauge,
-		Value: int64(5),
-	}
-
-	err := p1.add(p2)
-	if err != nil {
-		t.Error(err)
-	}
-
-	if want, got := int64(5), p1.Value; want != got {
-		t.Errorf("want '%d', got '%d'", want, got)
-	}
-
-	p3 := &point{
-		Name:  "my counter",
-		Type:  counter,
-		Value: int64(10),
-	}
-
-	err = p1.add(p3)
-	if err != ErrIncompatiblePointType {
-		t.Errorf("incompatible point types should raise error")
-	}
-
-	if want, got := float64(5), p1.promValue(); want != got {
+	if want, got := float64(10), p1.promValue(); want != got {
 		t.Errorf("want '%f', got '%f'", want, got)
 	}
 
@@ -101,22 +48,3 @@ func TestAddGauge(t *testing.T) {
 	}
 
 }
-
-func TestAddNotHandled(t *testing.T) {
-	p1 := &point{
-		Name:  "my gauge",
-		Type:  gauge,
-		Value: int64(10),
-	}
-
-	p2 := &point{
-		Name:  "bad",
-		Type:  99,
-		Value: int64(5),
-	}
-
-	err := p1.add(p2)
-	if err != ErrUnknownPointType {
-		t.Errorf("incompatible point types should raise error")
-	}
-}
diff --git a/pointstore.go b/pointstore.go
index 4531b5fbe5295cdede4445690f8bf8ee448fe7d4..3da93dfeb75e5cff6318706c4b10a78677ce57c1 100644
--- a/pointstore.go
+++ b/pointstore.go
@@ -33,14 +33,10 @@ func (ps *pointStore) keys() []string {
 	return keys
 }
 
-func (ps *pointStore) add(p *point) error {
+func (ps *pointStore) set(p *point) error {
 	var err error
 	ps.lock.Lock()
-	if _, ok := ps.pointMap[p.key()]; ok {
-		err = ps.pointMap[p.key()].add(p)
-	} else {
-		ps.pointMap[p.key()] = p
-	}
+	ps.pointMap[p.key()] = p
 	ps.lock.Unlock()
 	return err
 }
diff --git a/pointstore_test.go b/pointstore_test.go
index 210a95d00fcec5206a008c9bddc24477a6dd0373..ad7afcbff5807eebc69bbeda6d8dbde3cbafba3e 100644
--- a/pointstore_test.go
+++ b/pointstore_test.go
@@ -17,7 +17,7 @@ func TestPointStore(t *testing.T) {
 		Value: int64(5),
 	}
 
-	err := ps.add(s1)
+	err := ps.set(s1)
 	if err != nil {
 		t.Error(err)
 	}
@@ -31,7 +31,7 @@ func TestPointStore(t *testing.T) {
 		t.Errorf("want '%d', got '%d'", want, got)
 	}
 
-	err = ps.add(s2)
+	err = ps.set(s2)
 	if err != nil {
 		t.Error(err)
 	}
@@ -41,7 +41,7 @@ func TestPointStore(t *testing.T) {
 		t.Error(err)
 	}
 
-	if want, got := int64(15), got.Value; want != got {
+	if want, got := int64(5), got.Value; want != got {
 		t.Errorf("want '%d', got '%d'", want, got)
 	}
 
@@ -51,7 +51,7 @@ func TestPointStore(t *testing.T) {
 		Value: int64(20),
 	}
 
-	err = ps.add(s3)
+	err = ps.set(s3)
 	if err != nil {
 		t.Error(err)
 	}
@@ -71,7 +71,7 @@ func TestPointStore(t *testing.T) {
 		Value: int64(15),
 	}
 
-	err = ps.add(s4)
+	err = ps.set(s4)
 	if err != nil {
 		t.Error(err)
 	}