diff --git a/src/core.rs b/src/core.rs
index 9f6590c..b514d2a 100644
--- a/src/core.rs
+++ b/src/core.rs
@@ -1,5 +1,13 @@
-//! Handles conversion one word at a time for any base
+//! Handles conversion one letter at a time for any base
 // based off this SO answer: https://stackoverflow.com/a/1119769
+/// Converts a [`u32`] to catspeak
+/// 
+/// ```
+/// use cat2text::core::num_to_cat;
+/// use cat2text::base4::{alphabet, char_length};
+/// 
+/// assert_eq!("meow mreow mrrp".to_string(), num_to_cat(9, alphabet(), char_length()));
+/// ```
 pub fn num_to_cat(num: u32, alphabet: Vec<String>, char_length: u32) -> String {
     let mut num: u32 = num.clone();
     let base: u32 = alphabet.len() as u32;
@@ -21,6 +29,15 @@ pub fn num_to_cat(num: u32, alphabet: Vec<String>, char_length: u32) -> String {
 }
 
 /// Converts catspeak to a [`u32`]
+/// 
+/// ```
+/// use cat2text::core::cat_to_num;
+/// use cat2text::base4::{alphabet, char_length};
+/// 
+/// let letter = vec!["meow".to_string(), "mreow".to_string(), "mrrp".to_string()];
+/// 
+/// assert_eq!(9, cat_to_num(letter, alphabet(), char_length()));
+/// ```
 pub fn cat_to_num(text: Vec<String>, alphabet: Vec<String>, char_length: u32) -> u32 {
     let mut nums: Vec<u32> = Vec::new();
     for word in text {
@@ -40,3 +57,26 @@ pub fn cat_to_num(text: Vec<String>, alphabet: Vec<String>, char_length: u32) ->
     }
     return num;
 }
+
+/// Splits a cat word into every 3 segments
+/// 
+/// ```
+/// use cat2text::core::split_every_3;
+/// 
+/// assert_eq!(vec!["meow meow mrrp".to_string(), "meow mreow mrrp".to_string(), "mreow meow mrrp".to_string()], split_every_3("meow meow mrrp meow mreow mrrp mreow meow mrrp".to_string()));
+/// ```
+pub fn split_every_3(text: String) -> Vec<String> {
+    let delim = " ";
+    let tmp: Vec<String> = text.split(delim).map(|item| item.to_string()).collect();
+    let mut output: Vec<String> = Vec::new();
+    for i in 0..tmp.len() {
+        if i % 3 == 0 {
+            output.push(String::new())
+        }
+        output[i / 3] += tmp[i].as_str();
+        if i % 3 != 2 {
+            output[i / 3] += " ";
+        }
+    }
+    return output;
+}
\ No newline at end of file