diff --git a/common/probe/probe.go b/common/probe/probe.go
index 984036c..fdb07e8 100644
--- a/common/probe/probe.go
+++ b/common/probe/probe.go
@@ -116,6 +116,18 @@
 			log.Debugw("probe-service-registered", log.Fields{"service-name": name})
 		}
 	}
+
+	if p.readyFunc != nil {
+		p.isReady = p.readyFunc(p.status)
+	} else {
+		p.isReady = defaultReadyFunc(p.status)
+	}
+
+	if p.healthFunc != nil {
+		p.isHealthy = p.healthFunc(p.status)
+	} else {
+		p.isHealthy = defaultHealthFunc(p.status)
+	}
 }
 
 // UpdateStatus utility function to send a service update to the probe
diff --git a/common/probe/probe_test.go b/common/probe/probe_test.go
index 18c4835..a7edc7f 100644
--- a/common/probe/probe_test.go
+++ b/common/probe/probe_test.go
@@ -202,7 +202,7 @@
 	assert.Equal(t, http.StatusTeapot, resp.StatusCode, "invalid status code for no services")
 }
 
-func TestReadzWithServices(t *testing.T) {
+func TestReadzWithServicesWithTrue(t *testing.T) {
 	p := (&Probe{}).WithReadyFunc(AlwaysTrue).WithHealthFunc(AlwaysTrue)
 	p.RegisterService("one", "two")
 
@@ -210,7 +210,18 @@
 	w := httptest.NewRecorder()
 	p.readzFunc(w, req)
 	resp := w.Result()
-	assert.Equal(t, http.StatusTeapot, resp.StatusCode, "invalid status code for no services")
+	assert.Equal(t, http.StatusOK, resp.StatusCode, "invalid status code for registered only services")
+}
+
+func TestReadzWithServicesWithDefault(t *testing.T) {
+	p := &Probe{}
+	p.RegisterService("one", "two")
+
+	req := httptest.NewRequest("GET", "http://example.com/readz", nil)
+	w := httptest.NewRecorder()
+	p.readzFunc(w, req)
+	resp := w.Result()
+	assert.Equal(t, http.StatusTeapot, resp.StatusCode, "invalid status code for registered only services")
 }
 
 func TestReadzNpServicesDefault(t *testing.T) {
@@ -258,7 +269,7 @@
 	assert.Equal(t, http.StatusTeapot, resp.StatusCode, "invalid status code for no services")
 }
 
-func TestHealthzWithServices(t *testing.T) {
+func TestHealthzWithServicesWithTrue(t *testing.T) {
 	p := (&Probe{}).WithReadyFunc(AlwaysTrue).WithHealthFunc(AlwaysTrue)
 	p.RegisterService("one", "two")
 
@@ -266,7 +277,18 @@
 	w := httptest.NewRecorder()
 	p.healthzFunc(w, req)
 	resp := w.Result()
-	assert.Equal(t, http.StatusTeapot, resp.StatusCode, "invalid status code for no services")
+	assert.Equal(t, http.StatusOK, resp.StatusCode, "invalid status code for registered only services")
+}
+
+func TestHealthzWithServicesWithDefault(t *testing.T) {
+	p := &Probe{}
+	p.RegisterService("one", "two")
+
+	req := httptest.NewRequest("GET", "http://example.com/healthz", nil)
+	w := httptest.NewRecorder()
+	p.healthzFunc(w, req)
+	resp := w.Result()
+	assert.Equal(t, http.StatusOK, resp.StatusCode, "invalid status code for registered only services")
 }
 
 func TestHealthzNoServicesDefault(t *testing.T) {
