Refactored Recursor_crtp into an easier to use template function