Add namedvector header. Use armadillo matrix instead of numericmatrix for output. Use unordered_map to avoid dependency on boost library. Create two structs to store the data returned from the integration function and the settings from ODE. Split the code such that there is a function only dependent on STL and user-defined structs, leaving all the Rcpp operations in a wrapper function.