diff --git a/circ_list.c b/circ_list.c
index f0900802f78ff67edfc4ad24aab2ba574e86172d..93c2c3405a0bb7953d00ba975e722292b453ed32 100644
--- a/circ_list.c
+++ b/circ_list.c
@@ -62,7 +62,7 @@ element *list_insert_before(element *head, int data) {
     return list_insert_after(iterator, data);
 }
 
-element *list_search(element *head, int data, int (*compare)(int, int)) {
+element *list_search(element *head, int data) {
     if (list_empty(head)) {
         return NULL;
     }
@@ -70,7 +70,7 @@ element *list_search(element *head, int data, int (*compare)(int, int)) {
     element *iterator = head;
 
     do {
-        if (compare(iterator->data, data)) {
+        if (iterator->data == data) {
             return iterator;
         }
 
@@ -81,8 +81,8 @@ element *list_search(element *head, int data, int (*compare)(int, int)) {
 }
 
 // This function cannot work when the element to be removed is the head.
-element *list_remove(element *head, int data, int (*compare)(int, int)) {
-    element *el = list_search(head, data, compare);
+element *list_remove(element *head, int data) {
+    element *el = list_search(head, data);
 
     if (el == NULL) {
         return NULL;
diff --git a/circ_list.h b/circ_list.h
index fc413ce6d4a5c8c6cf45caec30d5775fa93ee523..278e7ebbdf5623af4c242c23bc01f5ad9091bd8d 100644
--- a/circ_list.h
+++ b/circ_list.h
@@ -14,8 +14,8 @@ unsigned int list_count(element *head);
 element *list_move(element *head);
 element *list_insert_after(element *head, int data);
 element *list_insert_before(element *head, int data);
-element *list_search(element *head, int data, int (*compare)(int, int));
-element *list_remove(element *head, int data, int (*compare)(int, int));
+element *list_search(element *head, int data);
+element *list_remove(element *head, int data);
 void list_free(element *head);
 void list_process(element *head, int (*action)(int));
 
diff --git a/circ_list_tests.c b/circ_list_tests.c
index ffc4198eddfe81623514a6e7602dcf926defe977..3cdc78bc96032b089b2934c7d7bf72e150913db8 100644
--- a/circ_list_tests.c
+++ b/circ_list_tests.c
@@ -5,10 +5,6 @@
 
 #include "circ_list.h"
 
-int compare_equality(int element, int data) {
-    return element == data;
-}
-
 int action_add_10(int element) {
     return element + 10;
 }
@@ -61,10 +57,10 @@ int main() {
     assert(list_count(list) == 3);
 
     // list_search
-    element *search_result_1 = list_search(list, 1, compare_equality);
+    element *search_result_1 = list_search(list, 1);
     assert(search_result_1->data == 1);
 
-    element *search_result_2 = list_search(list, 4, compare_equality);
+    element *search_result_2 = list_search(list, 4);
     assert(search_result_2 == NULL);
 
     // list_process
@@ -78,7 +74,7 @@ int main() {
 
     // list_remove
     printf("list_remove\n");
-    element *removed_element_1 = list_remove(list, 13, compare_equality);
+    element *removed_element_1 = list_remove(list, 13);
     assert(removed_element_1->data == 13);
     assert(list->data == 12);
     assert(list->next->data == 11);