public static function underscore($camel_cased_word){
		$word = $camel_cased_word;
		$word = preg_replace('/\\\/', '/', $word);
		$acronym_regex = static::inflections()->acronym_regex;
		$word = preg_replace_callback("/(?:([A-Za-z\d])|^)({$acronym_regex})(?=\b|[^a-z])/", function($matches){
			return "{$matches[1]}" . ($matches[1] ? '_' : '') . strtolower($matches[2]);
		}, $word);
		$word = preg_replace('/([A-Z\d]+)([A-Z][a-z])/','$1_$2', $word);
		$word = preg_replace('/([a-z\d])([A-Z])/','$1_$2', $word);
		$word = strtr($word, '-', '_');
		$word = strtolower($word);
		return $word;
	}