static public function camelcasedToUnderscored($str) {
        $str = lcfirst($str);
        return preg_replace_callback(
            '/([A-Z])/',
            function ($str) {
                return "_" . strtolower($str[1]);
            },
            $str
        );
    }