diff --git a/lib/pcounter.c b/lib/pcounter.c
index 93feea5..9b56807 100644
--- a/lib/pcounter.c
+++ b/lib/pcounter.c
@@ -7,20 +7,52 @@
 #include <linux/module.h>
 #include <linux/pcounter.h>
 #include <linux/smp.h>
+#include <linux/cpumask.h>
 
-void pcounter_def_add(struct pcounter *self, int inc)
+static void pcounter_dyn_add(struct pcounter *self, int inc)
 {
 	per_cpu_ptr(self->per_cpu_values, smp_processor_id())[0] += inc;
 }
 
-EXPORT_SYMBOL_GPL(pcounter_def_add);
-
-int pcounter_def_getval(const struct pcounter *self)
+static int pcounter_dyn_getval(const struct pcounter *self, int cpu)
 {
-	int res = 0, cpu;
-	for_each_possible_cpu(cpu)
-		res += per_cpu_ptr(self->per_cpu_values, cpu)[0];
-	return res;
+	return per_cpu_ptr(self->per_cpu_values, cpu)[0];
 }
 
-EXPORT_SYMBOL_GPL(pcounter_def_getval);
+int pcounter_getval(const struct pcounter *self)
+{
+	int res = 0, cpu;
+
+	for_each_possible_cpu(cpu)
+		res += self->getval(self, cpu);
+
+	return res;
+}
+EXPORT_SYMBOL_GPL(pcounter_getval);
+
+int pcounter_alloc(struct pcounter *self)
+{
+	int rc = 0;
+	if (self->add == NULL) {
+		self->per_cpu_values = alloc_percpu(int);
+		if (self->per_cpu_values != NULL) {
+			self->add    = pcounter_dyn_add;
+			self->getval = pcounter_dyn_getval;
+		} else
+			rc = 1;
+	}
+	return rc;
+}
+EXPORT_SYMBOL_GPL(pcounter_alloc);
+
+void pcounter_free(struct pcounter *self)
+{
+	if (self->per_cpu_values != NULL) {
+		free_percpu(self->per_cpu_values);
+		self->per_cpu_values = NULL;
+		self->getval = NULL;
+		self->add = NULL;
+	}
+}
+EXPORT_SYMBOL_GPL(pcounter_free);
+
