+#include <stdbool.h>
+
+typedef bool(*c_criteria_cb)(int a);
+
+bool is_even(int a);
+bool is_odd(int a);
+
+typedef bool(*s_criteria_cb)(int a, int b);
+
+/* sort criteria */
+bool ascending(int a, int b);
+bool descending(int a, int b);
+bool ascending_and_even(int a, int b);
+bool ascending_and_odd(int a, int b);
+
+void sort_bubble_array(int* array, unsigned length, s_criteria_cb sort_criteria);