diff --git a/.Rbuildignore b/.Rbuildignore
index da71bef914d5308641f097ad1b27561b5500718a..491abfbdbe66eccbf5b7cdc8cc1ee0ece1b0eea3 100644
--- a/.Rbuildignore
+++ b/.Rbuildignore
@@ -1,4 +1,7 @@
 ^.*\.Rproj$
 ^\.Rproj\.user$
 ^Formulas_Reference$
-^Vergleichsrechnung_Excel/$
+^Vergleichsrechnung_Excel$
+^R/Companies
+^Auswertungen
+
diff --git a/R/InsuranceTarif.R b/R/InsuranceTarif.R
index a780aa6fab4e4cf7cf7a7f940afd8deea4001b1f..72f1c735706af71ea80c18214bf007db155ac871 100644
--- a/R/InsuranceTarif.R
+++ b/R/InsuranceTarif.R
@@ -10,29 +10,128 @@ NULL
 TariffTypeEnum = objectProperties::setSingleEnum("TariffType", levels = c("annuity", "wholelife", "endowment", "pureendowment", "terme-fix", "dread-disease", "endowment + dread-disease"))
 
 
-############ Class InsuranceTarif ###########################################
-#' Base class for Insurance Tarifs, providing calculation functions to the contract
+############# Class InsuranceTarif ###########################################
+#' Base class for traditional Insurance Tarifs (with fixed guarantee, profit sharing and no unit-linked component)
 #'
-#' This is a base class for holding contract-independent values and
+#' @description The class \code{InsuranceTarif} provides the code and general framework to
+#' implement contract-independent functionality of a life insurance product.
+#'
+#' @details This is a base class for holding contract-independent values and
 #' providing methods to calculate cash flows, premiums, etc. Objects of this
 #' class do NOT contain contract-specific values like age, death probabilities,
 #' premiums, reserves, etc. Rather, they are the calculation kernels that will
 #' be called by the \code{\link{InsuranceContract}} objects to make the actual,
 #' tariff-specific calculations.
 #'
+#' Most methods of this class are not meant to be called manually, but are supposed
+#' to be called by the InsuranceContract object with contract-specific information.
+#' The only methods that are typically sued for defining an insurance tariff are
+#' the constructor [InsuranceTarif@initialize] and the cloning method
+#' [InsuranceTarif@createModification]. All other methods should never be called
+#' manually.
+#'
+#' However, as overriding private methods is not possible in an R6 class, all the
+#' methods need to be public to allow overriding them in derived classes.
+#'
+# # Parameters for the constructors
+#' @param name The unique name / ID of the tariff
+#' @param type An enum specifying the main characteristics of the tarif. See [tariffType]
+#' @param tarif The tariff's public name. See [InsuranceTarif@tarif]
+#' @param desc A short human-readable description. See [InsuranceTarif@desc]
+# # General parameters for (almost) all function
+#' @param params Contract-specific, full set of parameters of the contract (merged parameters of the defaults, the tariff, the profit participation scheme and the contract)
+#' @param values Contract values calculated so far (in the \code{contract$Values} list) then this method is called by the contract object
+#'
+#' @param premiumCalculationTime The time when the premiums should be
+#'        (re-)calculated according to the equivalence principle. A time 0
+#'        means the initial premium calculation at contract closing, later
+#'        premium calculation times can be used to re-calculate the new
+#'        premium after a contract change (possibly including an existing reserve)
+#'
+#' @examples
+#' # Define an insurance tariff for 10-year endowments, using a guaranteed interest
+#' # rate of 1% and the Austrian population mortality table of the census 2011.
+#' # Premiums are paid monthly in advance during the whole contract period.
+#' mortalityTables.load("Austria_Census")
+#' # Cost structure:
+#' #   - 4% up-front acquisition costs (of premium sum)
+#' #   - 1% collection cost of each premium paid
+#' #   - 1%o yearly administration cost (of the sum insured) as long as premiums are paid
+#' #   - 2%o yearly administration cost for paid-up contracts
+#' #   - 10 Euro yearly unit costs (as long as premiums are paid)
+#' costs.endw = initializeCosts(alpha = 0.04, beta = 0.01, gamma = 0.001, gamma.paidUp = 0.002, gamma.premiumfree = 0.002, unitcosts = 10)
+#'
+#' endowment.AT1 = InsuranceTarif$new(
+#'     name = "Endow AT 1%", type = "endowment", tarif = "Austrian Endowment",
+#'     desc = "An endowment for Austrian insured with 1% interest and no profit participation",
+#'     ContractPeriod = 10,
+#'     i = 0.01, mortalityTable = mort.AT.census.2011.unisex,
+#'     costs = costs.endw, premiumFrequency = 12)
+#'
+#' # The instantiation of the actual contract will provide the contract specific
+#' # information and immediately calculate all further values:
+#' ctr.end.AT1 = InsuranceContract$new(tarif = endowment.AT1, contractClosing = as.Date("2020-07-01"), age = 42)
+#'
+#' # All values for the contract are already calculated during construction and stored in teh ctr.end.AT1$Values list:
+#' ctr.end.AT1$Values$basicData
+#' ctr.end.AT1$Values$transitionProbabilities
+#' ctr.end.AT1$Values$cashFlowsCosts
+#' ctr.end.AT1$Values$presentValues
+#' ctr.end.AT1$Values$premiums
+#' ctr.end.AT1$Values$reserves
+#' ctr.end.AT1$Values$premiumComposition
+#' # etc.
 #' @export
 InsuranceTarif = R6Class(
   "InsuranceTarif",
 
   ######################### PUBLIC METHODS ##################################
   public  = list(
+    #' @field name The tariff's unique name. Will also be used as the key for exported data.
     name  = "Insurance Contract Type",
+    #' @field tarif The tariff's public name (typically a product name), not necessarily unique.
     tarif = NULL,
+    #' @field desc A short human-readable description of the tariff and its main features.
     desc  = NULL,
-    tariffType = TariffTypeEnum("wholelife"), # possible values: annuity, wholelife, endowment, pureendowment, terme-fix
-
+    #' @field tariffType An enum specifying the main characteristics of the tarif. Possible values are:
+    #' \description{
+    #'   \item{annuity}{Whole life or term annuity (periodic survival benefits) with flexible payouts (constand, increasing, decreasing, arbitrary, etc.)}
+    #'   \item{wholelife}{A whole or term life insurance with only death benefits. The benefit can be constant, increasing, decreasing, described by a function, etc.}
+    #'   \item{endowment}{An  endowment with death and survival benefits, potentially with different benefits.}
+    #'   \item{pureendowment}{A pure endowment with only a survival benefit at the end of the contract. Optionally, in case of death, all or part of the premiums paid may be refunded.}
+    #'   \item{terme-fix}{A terme-fix insurance with a fixed payout at the end of the contract, even if the insured dies before that time. Premiums are paid until death of the insured.}
+    #'   \item{dread-disease}{A dread-disease insurance, which pays in case of a severe illness (typically heart attacks, cancer, strokes, etc.), but not in case of death.}
+    #'   \item{endowment + dread-disease}{A combination of an endowment and a temporary dread-disease insurance. Benefits occur either on death, severe illness or survival, whichever comes first.}
+    #' }
+    tariffType = ("wholelife"), # possible values: annuity, wholelife, endowment, pureendowment, terme-fix
+
+    #' @field Parameters A data structure (nested list) containing all relevant parameters describing a contract, its underlying tariff, the profit participation scheme etc. See \seealso{InsuranceContract.ParameterStructure} for all fields.
     Parameters = InsuranceContract.ParameterStructure,
 
+    #' @description Initialize a new tariff object
+    #' @details The constructor function defines a tariff and generates the corresponding data structure, which can then be used with the [InsuranceContract] class to define an actual contract using the tariff.
+    #' The arguments passed to this function will be stored inside the \code{Parameters} field of the class, inside one of the lists sublists. The parameters are stacked from different layers (higher levels override default values from lower layers):
+    #'
+    #' * InsuranceContract object (parameters passed directly to the individual contract)
+    #' * ProfitParticipation object (parameters for profit participation, passed to the definition of the profit plan, which is used for the tarif definition or the contract)
+    #' * InsuranceTarif object (parameters passed to the definition of the tariff that was used for the contract)
+    #' * Defaults taken from [InsuranceContract.ParameterStructure]
+    #'
+    #' The general implementation of this parameter layering means that (a) a tariff
+    #' can already provide default values for contracts (e.g. a default maturity,
+    #' default sum insured, etc) and (b) individual contracts can override all
+    #' parameters defined with the underlying tariff. In particular the latter
+    #' feature has many use-cases in prototyping: E.g. when you have a tariff
+    #' with a guaranteed interest rate of 1\% and a certain mortality table,
+    #' one can immediately instantiate a contract with an updated interest rate
+    #' or mortality table for comparison. There is no need to re-implement a
+    #' tariff for such comparisons, as long as only parameters are changed.
+    #'
+    #' @param ... Parameters for the [InsuranceContract.ParametersStructure],
+    #'            defining the characteristics of the tariff.
+    #' @examples
+    #' mortalityTables.load("Austria_Annuities_AVOe2005R")
+    #' tarif.male = InsuranceTarif$new(name = "Annuity Males", type = "annuity", i = 0.01, mortalityTable = AVOe2005R.male)
     initialize = function(name = NULL, type = "wholelife", tarif = "Generic Tarif", desc = "Description of tarif", ...) {
       if (!missing(name))           self$name = name;
       if (!missing(type))           self$tariffType = type;
@@ -52,6 +151,24 @@ InsuranceTarif = R6Class(
       self$Parameters = InsuranceContract.ParametersFallback(self$Parameters, InsuranceContract.ParameterDefaults, ppParameters = FALSE);
     },
 
+    #' @description create a copy of a tariff with certain parameters changed
+    #' @details This method \code{createModification} returns a copy of the tariff
+    #' with all given arguments changed in the tariff's [InsuranceTarif@Parametrers]
+    #' parameter list.
+    #'
+    #' As InsuranceTarif is a R6 class with reference logic, simply assigning
+    #' the option to a new variable does not create a copy, but reference the
+    #' original tariff object. To create an actual copy, one needs to call this
+    #' method, which first clones the whole object and then adjusts all parameters
+    #' to the values passed to this method.
+    #'
+    #' @param tariffType An enum specifying the main characteristics of the tarif. See [tariffType]
+    #' @param ... Parameters for the [InsuranceContract.ParametersStructure],
+    #'            defining the characteristics of the tariff.
+    #' @examples
+    #' mortalityTables.load("Austria_Annuities_AVOe2005R")
+    #' tarif.male = InsuranceTarif$new(name = "Annuity Males", type = "annuity", i = 0.01, mortalityTable = AVOe2005R.male)
+    #' tarif.unisex = tarif.male@createModification(name = "Annuity unisex", mortalityTable = AVOe2005R.unisex)
     createModification = function(name  = NULL, tarif = NULL, desc  = NULL, tariffType = NULL, ...) {
       cloned = self$clone();
       if (!missing(name))       cloned$name = name;
@@ -63,15 +180,25 @@ InsuranceTarif = R6Class(
       cloned
     },
 
-    # Retrieve the default Parameters for this tariff (can be overridden for each contract)
+    #' @description Retrieve the parameters for this tariff (can be overridden for each contract)
+    #'
+    #' @examples
+    #' tarif.male = InsuranceTarif$new(name = "Annuity Males", type = "annuity", i = 0.01, mortalityTable = AVOe2005R.male)
+    #' tarif.male@getParameters()
     getParameters = function() {
       self$Parameters
     },
 
-    # Get some internal parameters cached (length of data.frames, policy periods cut at max.age, etc.)
+    #' @description Get some internal parameters cached (length of data.frames, policy periods cut at max.age, etc.)
+    #'
+    #' @details This methos is not meant to be called explicitly, but rather used
+    #' by the InsuranceContract class. It returns a list of maturities and ages
+    #' relevant for the contract-specific calculations
+    #'
+    #' @param ... currently unused
     getInternalValues = function(params, ...) {
       age = params$ContractData$technicalAge
-      maxAge = getOmega(params$ActuarialBases$mortalityTable)
+      maxAge = MortalityTables::getOmega(params$ActuarialBases$mortalityTable)
       policyPeriod = params$ContractData$policyPeriod
       list(
         l = min(maxAge - age, policyPeriod) + 1,
@@ -81,6 +208,10 @@ InsuranceTarif = R6Class(
     },
 
 
+    #' @description Calculate the contract-relevant age(s) given a certain parameter data structure (contract-specific values)
+    #'
+    #' @details This method is not meant to be called explicitly, but rather used
+    #' by the InsuranceContract class. It returns the relevant ages during the whole contract period
     getAges = function(params) {
       ages = ages(params$ActuarialBases$mortalityTable, YOB = params$ContractData$YOB);
       age = params$ContractData$technicalAge;
@@ -90,15 +221,17 @@ InsuranceTarif = R6Class(
       ages
     },
 
+    #' @description Calculate the transition probabilities from the contract-specific parameters passed as \code{params} and the already-calculated contract values \code{values}
+    #' @details Not to be called directly, but implicitly by the [InsuranceContract] object.
     getTransitionProbabilities = function(params, values) {
       age = params$ContractData$technicalAge;
       ages = self$getAges(params);
-      q = deathProbabilities(params$ActuarialBases$mortalityTable, YOB = params$ContractData$YOB, ageDifferences = params$ContractData$ageDifferences);
+      q = MortalityTables::deathProbabilities(params$ActuarialBases$mortalityTable, YOB = params$ContractData$YOB, ageDifferences = params$ContractData$ageDifferences);
       if (age > 0) {
         q    = q[-age:-1];
       }
       if (!is.null(params$ActuarialBases$invalidityTable)) {
-        i = deathProbabilities(params$ActuarialBases$invalidityTable, YOB = params$ContractData$YOB, ageDifferences = params$ContractData$ageDifferences);
+        i = MortalityTables::deathProbabilities(params$ActuarialBases$invalidityTable, YOB = params$ContractData$YOB, ageDifferences = params$ContractData$ageDifferences);
         if (age > 0) {
           i    = i[-age:-1];
         }
@@ -116,15 +249,24 @@ InsuranceTarif = R6Class(
       df
     },
 
+    #' @description Obtain the cost structure from the cost parameter and the given paremeter set
+    #' @details Not to be called directly, but implicitly by the [InsuranceContract] object.
+    #' The cost parameter can be either an array of costs (generated by [initializeCosts()])
+    #' or a function with parameters \code{param} and \code{values}(=NULL) returning
+    #' an array of the required dimensions. This function makes sures that the
+    #' latter function is actually evaluated.
+    #' @param costs The cost parameter passed to the tarif definition or the contract (either an array of the form returned by [initializeCosts()] or a function(params, values) returning such an array)
     getCostValues = function(costs, params) {
         valueOrFunction(costs, params = params, values = NULL)
     },
 
-    # Get the unit premium cash flow for the whole contract period.
-    #   - For constant premiums it will be rep(1, premiumPeriod),
-    #   - for single premiums it will be c(1, 0, 0, ...),
-    #   - for increasing premiums it will be (1+increase)^(0:(premiumPeriod-1))
-    # and 0 after the premium period
+    #' @description Returns the unit premium cash flow for the whole contract period.
+    #'   - For constant premiums it will be rep(1, premiumPeriod),
+    #'   - for single premiums it will be c(1, 0, 0, ...),
+    #'   - for increasing premiums it will be (1+increase)^(0:(premiumPeriod-1))
+    #' and 0 after the premium period
+    #' @details Not to be called directly, but implicitly by the [InsuranceContract] object.
+    #' @param len The desired length of the returned data frame (the number of contract periods desire)
     getPremiumCF = function(len, params, values) {
       premPeriod = min(params$ContractData$premiumPeriod, params$ContractData$policyPeriod, len);
       if (is.null(params$ContractData$premiumIncrease)) {
@@ -142,10 +284,13 @@ InsuranceTarif = R6Class(
       }
     },
 
-    # Get the unit annuity cash flow (guaranteed and contingent) for the whole annuity payment period (after potential deferral period)
-    #   - For constant annuity it will be rep(1, annuityPeriod),
-    #   - for increasing annuities it will be (1+increase)^(0:(premiumPeriod-1))
-    # and 0 after the premium period
+    #' @description Returns the unit annuity cash flow (guaranteed and contingent) for
+    #'     the whole annuity payment period (after potential deferral period)
+    #'   - For constant annuity it will be rep(1, annuityPeriod),
+    #'   - for increasing annuities it will be (1+increase)^(0:(premiumPeriod-1))
+    #' and 0 after the premium period
+    #' @details Not to be called directly, but implicitly by the [InsuranceContract] object.
+    #' @param len The desired length of the returned data frame (the number of contract periods desire)
     getAnnuityCF = function(len, params, values) {
       annuityPeriod = min(params$ContractData$policyPeriod - params$ContractData$deferralPeriod, len);
       if (is.null(params$ContractData$annuityIncrease)) {
@@ -164,9 +309,11 @@ InsuranceTarif = R6Class(
       }
     },
 
-    # Get the unit death cash flow for the whole protection period (after potential deferral period!)
-    #   - For constant death benefit it will be rep(1, policyPeriod),
-    #   - for linearly decreasing sum insured it will be (policyPeriod:0)/policyPeriod
+    #' @description Returns the unit death cash flow for the whole protection period (after potential deferral period!)
+    #'   - For constant death benefit it will be rep(1, policyPeriod),
+    #'   - for linearly decreasing sum insured it will be (policyPeriod:0)/policyPeriod
+    #' @details Not to be called directly, but implicitly by the [InsuranceContract] object.
+    #' @param len The desired length of the returned data frame (the number of contract periods desire)
     getDeathCF = function(len, params, values) {
       period = params$ContractData$policyPeriod - params$ContractData$deferralPeriod;
       if (is.null(params$ContractData$deathBenefit)) {
@@ -185,6 +332,9 @@ InsuranceTarif = R6Class(
       }
     },
 
+    #' @description Returns the basic (unit) cash flows associated with the type of insurance
+    #' given in the [InsuranceContract@tariffType] field
+    #' @details Not to be called directly, but implicitly by the [InsuranceContract] object.
     getBasicCashFlows = function(params, values) {
       deferralPeriod = params$ContractData$deferralPeriod;
       guaranteedPeriod = params$ContractData$guaranteedPeriod;
@@ -248,6 +398,8 @@ InsuranceTarif = R6Class(
       cf
     },
 
+    #' @description Returns the cash flows for the contract given the parameters
+    #' @details Not to be called directly, but implicitly by the [InsuranceContract] object.
     getCashFlows = function(params, values) {
       age = params$ContractData$technicalAge;
 
@@ -308,6 +460,8 @@ InsuranceTarif = R6Class(
       applyHook(params$Hooks$adjustCashFlows, cf, params, values)
     },
 
+    #' @description Returns the cost cash flows of the contract given the contract and tariff parameters
+    #' @details Not to be called directly, but implicitly by the [InsuranceContract] object.
     getCashFlowsCosts = function(params, values) {
       dm = dim(params$Costs);
       dmnames = dimnames(params$Costs);
@@ -337,6 +491,9 @@ InsuranceTarif = R6Class(
       applyHook(params$Hooks$adjustCashFlowsCosts, cf, params, values)
     },
 
+    #' @description Returns the present values of the cash flows of the contract (cash flows already calculated and stored in the \code{cashFlows} data.frame)
+    #' @details Not to be called directly, but implicitly by the [InsuranceContract] object.
+    #' @param cashFlows data.frame of cash flows calculated by a call to [InsuranceTarif@getCashFlows()]
     presentValueCashFlows = function(cashFlows, params, values) {
 
       qq = self$getTransitionProbabilities(params);
@@ -394,6 +551,8 @@ InsuranceTarif = R6Class(
       pv
     },
 
+    #' @description Calculates the present values of the cost cash flows of the contract (cost cash flows alreay calculated by [InsuranceTarif@getCashFlowsCosts()] and stored in the \code{values} list
+    #' @details Not to be called directly, but implicitly by the [InsuranceContract] object.
     presentValueCashFlowsCosts = function(params, values) {
       len = values$int$l;
       q = self$getTransitionProbabilities(params);
@@ -404,7 +563,11 @@ InsuranceTarif = R6Class(
       pvc
     },
 
-    # Cost values (CF, present values, etc.) are an Tx5x3 matrix => convert to Tx15 matrix (alpha | Zillmer | beta | gamma)
+    #' @description Convert the cost values array to a tx15 matrix
+    #' @details Not to be called directly, but implicitly by the [InsuranceContract] object.
+    #' Convert the array containing cost values like cashflows, present
+    #' values, etc. (objects of dimension tx5x3) to a matrix with dimensions (tx15)
+    #' @param costValues The cost data structure (array of size tx5x3) to be converted to a matrix
     costValuesAsMatrix = function(costValues) {
       dm = dim(costValues);
       nm = dimnames(costValues);
@@ -416,6 +579,13 @@ InsuranceTarif = R6Class(
       res
     },
 
+    #' @description Calculate the cash flows in monetary terms of the insurance contract
+    #' @details Once the premiums of the insurance contracts are calculated, all
+    #' cash flows can also be expressed in absolute terms. This function
+    #' calculates these time series in monetary terms, once the premiums
+    #' are calculated by the previous functions of this class.
+    #'
+    #' This method is NOT to be called directly, but implicitly by the [InsuranceContract] object.
     getAbsCashFlows = function(params, values) {
 
         # TODO: Set up a nice list with coefficients for each type of cashflow,
@@ -452,6 +622,12 @@ InsuranceTarif = R6Class(
       cbind(values$cashFlows, values$cashFlowsCosts)
     },
 
+    #' @description Calculate the absolute present value time series of the insurance contract
+    #' @details Once the premiums of the insurance contracts are calculated, all
+    #' present values can also be expressed in absolute terms. This function
+    #' calculates these time series in monetary terms, once the premiums and the unit-benefit present values are calculated by the previous functions of this classe.
+    #'
+    #' This method is NOT to be called directly, but implicitly by the [InsuranceContract] object.
     getAbsPresentValues = function(params, values) {
       pv = values$presentValues;
 
@@ -474,6 +650,14 @@ InsuranceTarif = R6Class(
     },
 
 
+    #' @description Calculate the absolute present value time series of the benefits of the insurance contract
+    #' @details Once the premiums of the insurance contracts are calculated, all
+    #' present values can also be expressed in absolute terms. This function
+    #' calculates these time series of the benefits present values in monetary
+    #' terms, once the premiums and the unit-benefit present values are calculated
+    #'  by the previous functions of this classe.
+    #'
+    #' This method is NOT to be called directly, but implicitly by the [InsuranceContract] object.
     presentValueBenefits = function(params, values) {
       # TODO: Here we don't use the securityLoading parameter => Shall it be used or are these values to be understood without additional security loading?
       benefits    = values$presentValues[,"survival"] +
@@ -495,9 +679,19 @@ InsuranceTarif = R6Class(
         benefitsCosts)
     },
 
-    # When getPremiumCoefficients is called, the values$premiums array has NOT been filled! Instead,
-    # some of the premium fields (all required for the current calculation) have
-    # been set in the passed "premiums" argument.
+    #' @description Calculate the linear coefficients of the premium calculation formula for the insurance contract
+    #' @details Not to be called directly, but implicitly by the [InsuranceContract] object.
+    #' When \code{getPremiumCoefficients} is called, the \code{values$premiums}
+    #' array has NOT yet been filled! Instead, all premiums already calculated
+    #' (and required for the premium coefficients) are passed in the \code{premiums}
+    #' argument.
+    #'
+    #' @param type The premium that is supposed to be calculated ("gross", "Zillmer", "net")
+    #' @param coeffBenefits (empty) data structure of the benefit coefficients. The actual values have no meaning, this parameter is only used to derive the required dimensions
+    #' @param coeffCosts (empty) data structure of the cost coefficients. The actual values have no meaning, this parameter is only used to derive the required dimensions
+    #' @param premiums The premium components that have already been calculated
+    #'         (e.g. for net and Zillmer, the gross premium has already been
+    #'         calculated to allow modelling the premium refund)
     getPremiumCoefficients = function(type = "gross", coeffBenefits, coeffCosts, premiums, params, values, premiumCalculationTime = values$int$premiumCalculationTime) {
       # Merge a possibly passed loadings override with the defaults of this class:
       securityLoading = valueOrFunction(params$Loadings$security, params = params, values = values);
@@ -567,6 +761,8 @@ InsuranceTarif = R6Class(
       coeff
     },
 
+    #' @description Calculate the premiums of the InsuranceContract given the parameters, present values and premium cofficients already calculated and stored in the \code{params} and \code{values} lists.
+    #' @details Not to be called directly, but implicitly by the [InsuranceContract] object.
     premiumCalculation = function(params, values, premiumCalculationTime = values$int$premiumCalculationTime) {
       loadings = params$Loadings;
       sumInsured = params$ContractData$sumInsured
@@ -654,6 +850,8 @@ InsuranceTarif = R6Class(
       list("premiums" = values$premiums, "coefficients" = coefficients)
     },
 
+    #' @description Calculate the reserves of the InsuranceContract given the parameters, present values and premiums already calculated and stored in the \code{params} and \code{values} lists.
+    #' @details Not to be called directly, but implicitly by the [InsuranceContract] object.
     reserveCalculation = function(params, values) {
       t = "0"
       securityFactor = (1 + valueOrFunction(params$Loadings$security, params = params, values = values));
@@ -753,6 +951,9 @@ InsuranceTarif = R6Class(
       )
     },
 
+    #' @description Calculate the (linear) interpolation factors for the balance sheet reserve (Dec. 31) between the yearly contract clowing dates
+    #' @details Not to be called directly, but implicitly by the [InsuranceContract] object.
+    #' @param years how many years to calculate (for some usances, the factor is different in leap years!)
     getBalanceSheetReserveFactor = function(params, years = 1) {
       balanceDate = params$ActuarialBases$balanceSheetDate
       year(balanceDate) = year(params$ContractData$contractClosing);
@@ -775,6 +976,10 @@ InsuranceTarif = R6Class(
       baf
     },
 
+    #' @description Calculate the reserves for the balance sheets at Dec. 31 of each
+    #'              year by interpolation from the contract values calculated for
+    #'              the yearly reference date of the contract
+    #' @details Not to be called directly, but implicitly by the [InsuranceContract] object.
     reserveCalculationBalanceSheet = function(params, values) {
       reserves = values$reserves;
       years = length(reserves[,"Zillmer"]);
@@ -811,6 +1016,10 @@ InsuranceTarif = R6Class(
       res
     },
 
+    #' @description Calculate the profit participation given the contract parameters and the already calculated reserves of the contract.
+    #' @details Not to be called directly, but implicitly by the [InsuranceContract] object.
+    #' @param ... Additional parameters for the profit participation calculation, passed
+    #'            through to the profit participation scheme's [ProfitParticipation$getProfitParticipation()]
     calculateProfitParticipation = function(params, ...) {
         ppScheme = params$ProfitParticipation$profitParticipationScheme;
         if (!is.null(ppScheme)) {
@@ -818,11 +1027,17 @@ InsuranceTarif = R6Class(
         }
     },
 
+    #' @description Calculate the reserves after profit participation for the given profit scenario
+    #' @details Not to be called directly, but implicitly by the [InsuranceContract] object.
+    #' @param profitScenario The ID of the profit scenario for which to calculate the reserves
+    #' @param ... TODO
     reservesAfterProfit = function(profitScenario, params, values, ...) {
         # TODO
     },
 
 
+    #' @description Return the time series of the basic contract
+    #' @details Not to be called directly, but implicitly by the [InsuranceContract] object.
     getBasicDataTimeseries = function(params, values) {
         res = cbind(
             "PremiumPayment" = values$premiumComposition[, "charged"] > 0,
@@ -836,6 +1051,9 @@ InsuranceTarif = R6Class(
         res
     },
 
+    #' @description Calculate the time series of the premium decomposition of the contract
+    #' @details Not to be called directly, but implicitly by the [InsuranceContract] object.
+    #'          All premiums, reserves and present values have already been calculated.
     premiumDecomposition = function(params, values) {
       loadings   = params$Loadings;
       sumInsured = params$ContractData$sumInsured;
@@ -1008,10 +1226,17 @@ InsuranceTarif = R6Class(
       res
     },
 
+
+    #' @description Generic function to calculate future sums of the values
+    #' @param values The time series, for which future sums at all times are desired
+    #' @param ... currently unused
     calculateFutureSums = function(values, ...) {
       rcumsum = function(vec) rev(cumsum(rev(vec)))
       apply(values, 2, rcumsum)
     },
+    #' @description Calculate all present values for a given time series. The mortalities are taken from the contract's parameters.
+    #' @param values The time series, for which future present values at all times are desired
+    #' @param ... currently unused
     calculatePresentValues = function(values, params) {
       len = dim(values)[1];
       q = self$getTransitionProbabilities(params);
@@ -1022,7 +1247,7 @@ InsuranceTarif = R6Class(
 
 
 
-    # Dummy to allow commas
+    #' @field dummy Dummy field to allow commas after the previous method
     dummy = 0
   )
 )
diff --git a/R/exportInsuranceContractExample.R b/R/exportInsuranceContractExample.R
index af2d502519148b9a40668e306ed6e130ab5f6a6b..1045a95a1ac6b7b1ca56f8895ba00f9a43af6928 100644
--- a/R/exportInsuranceContractExample.R
+++ b/R/exportInsuranceContractExample.R
@@ -1,4 +1,4 @@
-#' @include showVmGlgExamples.R exportInsuranceContract_xlsx.R InsuranceContract.R
+#' @include showVmGlgExamples.R exportInsuranceContract_xlsx.R InsuranceContract.R InsuranceTarif.R
 #'
 #' @import stringr
 NULL
diff --git a/man/InsuranceTarif.Rd b/man/InsuranceTarif.Rd
index f914c3c3e0120a46b422a2bb05a3b0e06d1b802b..b8299999c6ad196802f8431c98f045abe7da54d3 100644
--- a/man/InsuranceTarif.Rd
+++ b/man/InsuranceTarif.Rd
@@ -2,14 +2,110 @@
 % Please edit documentation in R/InsuranceTarif.R
 \name{InsuranceTarif}
 \alias{InsuranceTarif}
-\title{Base class for Insurance Tarifs, providing calculation functions to the contract}
+\title{Base class for traditional Insurance Tarifs (with fixed guarantee, profit sharing and no unit-linked component)}
 \description{
+The class \code{InsuranceTarif} provides the code and general framework to
+implement contract-independent functionality of a life insurance product.
+}
+\details{
 This is a base class for holding contract-independent values and
 providing methods to calculate cash flows, premiums, etc. Objects of this
 class do NOT contain contract-specific values like age, death probabilities,
 premiums, reserves, etc. Rather, they are the calculation kernels that will
 be called by the \code{\link{InsuranceContract}} objects to make the actual,
 tariff-specific calculations.
+
+Most methods of this class are not meant to be called manually, but are supposed
+to be called by the InsuranceContract object with contract-specific information.
+The only methods that are typically sued for defining an insurance tariff are
+the constructor [InsuranceTarif@initialize] and the cloning method
+[InsuranceTarif@createModification]. All other methods should never be called
+manually.
+
+However, as overriding private methods is not possible in an R6 class, all the
+methods need to be public to allow overriding them in derived classes.
+}
+\examples{
+# Define an insurance tariff for 10-year endowments, using a guaranteed interest
+# rate of 1\% and the Austrian population mortality table of the census 2011.
+# Premiums are paid monthly in advance during the whole contract period.
+mortalityTables.load("Austria_Census")
+# Cost structure:
+#   - 4\% up-front acquisition costs (of premium sum)
+#   - 1\% collection cost of each premium paid
+#   - 1\%o yearly administration cost (of the sum insured) as long as premiums are paid
+#   - 2\%o yearly administration cost for paid-up contracts
+#   - 10 Euro yearly unit costs (as long as premiums are paid)
+costs.endw = initializeCosts(alpha = 0.04, beta = 0.01, gamma = 0.001, gamma.paidUp = 0.002, gamma.premiumfree = 0.002, unitcosts = 10)
+
+endowment.AT1 = InsuranceTarif$new(
+    name = "Endow AT 1\%", type = "endowment", tarif = "Austrian Endowment",
+    desc = "An endowment for Austrian insured with 1\% interest and no profit participation",
+    ContractPeriod = 10,
+    i = 0.01, mortalityTable = mort.AT.census.2011.unisex,
+    costs = costs.endw, premiumFrequency = 12)
+
+# The instantiation of the actual contract will provide the contract specific
+# information and immediately calculate all further values:
+ctr.end.AT1 = InsuranceContract$new(tarif = endowment.AT1, contractClosing = as.Date("2020-07-01"), age = 42)
+
+# All values for the contract are already calculated during construction and stored in teh ctr.end.AT1$Values list:
+ctr.end.AT1$Values$basicData
+ctr.end.AT1$Values$transitionProbabilities
+ctr.end.AT1$Values$cashFlowsCosts
+ctr.end.AT1$Values$presentValues
+ctr.end.AT1$Values$premiums
+ctr.end.AT1$Values$reserves
+ctr.end.AT1$Values$premiumComposition
+# etc.
+
+## ------------------------------------------------
+## Method `InsuranceTarif$new`
+## ------------------------------------------------
+
+mortalityTables.load("Austria_Annuities_AVOe2005R")
+tarif.male = InsuranceTarif$new(name = "Annuity Males", type = "annuity", i = 0.01, mortalityTable = AVOe2005R.male)
+
+## ------------------------------------------------
+## Method `InsuranceTarif$createModification`
+## ------------------------------------------------
+
+mortalityTables.load("Austria_Annuities_AVOe2005R")
+tarif.male = InsuranceTarif$new(name = "Annuity Males", type = "annuity", i = 0.01, mortalityTable = AVOe2005R.male)
+tarif.unisex = tarif.male@createModification(name = "Annuity unisex", mortalityTable = AVOe2005R.unisex)
+
+## ------------------------------------------------
+## Method `InsuranceTarif$getParameters`
+## ------------------------------------------------
+
+tarif.male = InsuranceTarif$new(name = "Annuity Males", type = "annuity", i = 0.01, mortalityTable = AVOe2005R.male)
+tarif.male@getParameters()
+}
+\section{Public fields}{
+\if{html}{\out{<div class="r6-fields">}}
+\describe{
+\item{\code{name}}{The tariff's unique name. Will also be used as the key for exported data.}
+
+\item{\code{tarif}}{The tariff's public name (typically a product name), not necessarily unique.}
+
+\item{\code{desc}}{A short human-readable description of the tariff and its main features.}
+
+\item{\code{tariffType}}{An enum specifying the main characteristics of the tarif. Possible values are:
+\description{
+  \item{annuity}{Whole life or term annuity (periodic survival benefits) with flexible payouts (constand, increasing, decreasing, arbitrary, etc.)}
+  \item{wholelife}{A whole or term life insurance with only death benefits. The benefit can be constant, increasing, decreasing, described by a function, etc.}
+  \item{endowment}{An  endowment with death and survival benefits, potentially with different benefits.}
+  \item{pureendowment}{A pure endowment with only a survival benefit at the end of the contract. Optionally, in case of death, all or part of the premiums paid may be refunded.}
+  \item{terme-fix}{A terme-fix insurance with a fixed payout at the end of the contract, even if the insured dies before that time. Premiums are paid until death of the insured.}
+  \item{dread-disease}{A dread-disease insurance, which pays in case of a severe illness (typically heart attacks, cancer, strokes, etc.), but not in case of death.}
+  \item{endowment + dread-disease}{A combination of an endowment and a temporary dread-disease insurance. Benefits occur either on death, severe illness or survival, whichever comes first.}
+}}
+
+\item{\code{Parameters}}{A data structure (nested list) containing all relevant parameters describing a contract, its underlying tariff, the profit participation scheme etc. See \seealso{InsuranceContract.ParameterStructure} for all fields.}
+
+\item{\code{dummy}}{Dummy field to allow commas after the previous method}
+}
+\if{html}{\out{</div>}}
 }
 \section{Methods}{
 \subsection{Public methods}{
@@ -51,6 +147,7 @@ tariff-specific calculations.
 \if{html}{\out{<a id="method-new"></a>}}
 \if{latex}{\out{\hypertarget{method-new}{}}}
 \subsection{Method \code{new()}}{
+Initialize a new tariff object
 \subsection{Usage}{
 \if{html}{\out{<div class="r">}}\preformatted{InsuranceTarif$new(
   name = NULL,
@@ -61,11 +158,57 @@ tariff-specific calculations.
 )}\if{html}{\out{</div>}}
 }
 
+\subsection{Arguments}{
+\if{html}{\out{<div class="arguments">}}
+\describe{
+\item{\code{name}}{The unique name / ID of the tariff}
+
+\item{\code{type}}{An enum specifying the main characteristics of the tarif. See [tariffType]}
+
+\item{\code{tarif}}{The tariff's public name. See [InsuranceTarif@tarif]}
+
+\item{\code{desc}}{A short human-readable description. See [InsuranceTarif@desc]}
+
+\item{\code{...}}{Parameters for the [InsuranceContract.ParametersStructure],
+defining the characteristics of the tariff.}
+}
+\if{html}{\out{</div>}}
+}
+\subsection{Details}{
+The constructor function defines a tariff and generates the corresponding data structure, which can then be used with the [InsuranceContract] class to define an actual contract using the tariff.
+The arguments passed to this function will be stored inside the \code{Parameters} field of the class, inside one of the lists sublists. The parameters are stacked from different layers (higher levels override default values from lower layers):
+
+* InsuranceContract object (parameters passed directly to the individual contract)
+* ProfitParticipation object (parameters for profit participation, passed to the definition of the profit plan, which is used for the tarif definition or the contract)
+* InsuranceTarif object (parameters passed to the definition of the tariff that was used for the contract)
+* Defaults taken from [InsuranceContract.ParameterStructure]
+
+The general implementation of this parameter layering means that (a) a tariff
+can already provide default values for contracts (e.g. a default maturity,
+default sum insured, etc) and (b) individual contracts can override all
+parameters defined with the underlying tariff. In particular the latter
+feature has many use-cases in prototyping: E.g. when you have a tariff
+with a guaranteed interest rate of 1\% and a certain mortality table,
+one can immediately instantiate a contract with an updated interest rate
+or mortality table for comparison. There is no need to re-implement a
+tariff for such comparisons, as long as only parameters are changed.
+}
+
+\subsection{Examples}{
+\if{html}{\out{<div class="r example copy">}}
+\preformatted{mortalityTables.load("Austria_Annuities_AVOe2005R")
+tarif.male = InsuranceTarif$new(name = "Annuity Males", type = "annuity", i = 0.01, mortalityTable = AVOe2005R.male)
+}
+\if{html}{\out{</div>}}
+
+}
+
 }
 \if{html}{\out{<hr>}}
 \if{html}{\out{<a id="method-createModification"></a>}}
 \if{latex}{\out{\hypertarget{method-createModification}{}}}
 \subsection{Method \code{createModification()}}{
+create a copy of a tariff with certain parameters changed
 \subsection{Usage}{
 \if{html}{\out{<div class="r">}}\preformatted{InsuranceTarif$createModification(
   name = NULL,
@@ -76,164 +219,476 @@ tariff-specific calculations.
 )}\if{html}{\out{</div>}}
 }
 
+\subsection{Arguments}{
+\if{html}{\out{<div class="arguments">}}
+\describe{
+\item{\code{name}}{The unique name / ID of the tariff}
+
+\item{\code{tarif}}{The tariff's public name. See [InsuranceTarif@tarif]}
+
+\item{\code{desc}}{A short human-readable description. See [InsuranceTarif@desc]}
+
+\item{\code{tariffType}}{An enum specifying the main characteristics of the tarif. See [tariffType]}
+
+\item{\code{...}}{Parameters for the [InsuranceContract.ParametersStructure],
+defining the characteristics of the tariff.}
+}
+\if{html}{\out{</div>}}
+}
+\subsection{Details}{
+This method \code{createModification} returns a copy of the tariff
+with all given arguments changed in the tariff's [InsuranceTarif@Parametrers]
+parameter list.
+
+As InsuranceTarif is a R6 class with reference logic, simply assigning
+the option to a new variable does not create a copy, but reference the
+original tariff object. To create an actual copy, one needs to call this
+method, which first clones the whole object and then adjusts all parameters
+to the values passed to this method.
+}
+
+\subsection{Examples}{
+\if{html}{\out{<div class="r example copy">}}
+\preformatted{mortalityTables.load("Austria_Annuities_AVOe2005R")
+tarif.male = InsuranceTarif$new(name = "Annuity Males", type = "annuity", i = 0.01, mortalityTable = AVOe2005R.male)
+tarif.unisex = tarif.male@createModification(name = "Annuity unisex", mortalityTable = AVOe2005R.unisex)
+}
+\if{html}{\out{</div>}}
+
+}
+
 }
 \if{html}{\out{<hr>}}
 \if{html}{\out{<a id="method-getParameters"></a>}}
 \if{latex}{\out{\hypertarget{method-getParameters}{}}}
 \subsection{Method \code{getParameters()}}{
+Retrieve the parameters for this tariff (can be overridden for each contract)
 \subsection{Usage}{
 \if{html}{\out{<div class="r">}}\preformatted{InsuranceTarif$getParameters()}\if{html}{\out{</div>}}
 }
 
+\subsection{Examples}{
+\if{html}{\out{<div class="r example copy">}}
+\preformatted{tarif.male = InsuranceTarif$new(name = "Annuity Males", type = "annuity", i = 0.01, mortalityTable = AVOe2005R.male)
+tarif.male@getParameters()
+}
+\if{html}{\out{</div>}}
+
+}
+
 }
 \if{html}{\out{<hr>}}
 \if{html}{\out{<a id="method-getInternalValues"></a>}}
 \if{latex}{\out{\hypertarget{method-getInternalValues}{}}}
 \subsection{Method \code{getInternalValues()}}{
+Get some internal parameters cached (length of data.frames, policy periods cut at max.age, etc.)
 \subsection{Usage}{
 \if{html}{\out{<div class="r">}}\preformatted{InsuranceTarif$getInternalValues(params, ...)}\if{html}{\out{</div>}}
 }
 
+\subsection{Arguments}{
+\if{html}{\out{<div class="arguments">}}
+\describe{
+\item{\code{params}}{Contract-specific, full set of parameters of the contract (merged parameters of the defaults, the tariff, the profit participation scheme and the contract)}
+
+\item{\code{...}}{currently unused}
+}
+\if{html}{\out{</div>}}
+}
+\subsection{Details}{
+This methos is not meant to be called explicitly, but rather used
+by the InsuranceContract class. It returns a list of maturities and ages
+relevant for the contract-specific calculations
+}
+
 }
 \if{html}{\out{<hr>}}
 \if{html}{\out{<a id="method-getAges"></a>}}
 \if{latex}{\out{\hypertarget{method-getAges}{}}}
 \subsection{Method \code{getAges()}}{
+Calculate the contract-relevant age(s) given a certain parameter data structure (contract-specific values)
 \subsection{Usage}{
 \if{html}{\out{<div class="r">}}\preformatted{InsuranceTarif$getAges(params)}\if{html}{\out{</div>}}
 }
 
+\subsection{Arguments}{
+\if{html}{\out{<div class="arguments">}}
+\describe{
+\item{\code{params}}{Contract-specific, full set of parameters of the contract (merged parameters of the defaults, the tariff, the profit participation scheme and the contract)}
+}
+\if{html}{\out{</div>}}
+}
+\subsection{Details}{
+This method is not meant to be called explicitly, but rather used
+by the InsuranceContract class. It returns the relevant ages during the whole contract period
+}
+
 }
 \if{html}{\out{<hr>}}
 \if{html}{\out{<a id="method-getTransitionProbabilities"></a>}}
 \if{latex}{\out{\hypertarget{method-getTransitionProbabilities}{}}}
 \subsection{Method \code{getTransitionProbabilities()}}{
+Calculate the transition probabilities from the contract-specific parameters passed as \code{params} and the already-calculated contract values \code{values}
 \subsection{Usage}{
 \if{html}{\out{<div class="r">}}\preformatted{InsuranceTarif$getTransitionProbabilities(params, values)}\if{html}{\out{</div>}}
 }
 
+\subsection{Arguments}{
+\if{html}{\out{<div class="arguments">}}
+\describe{
+\item{\code{params}}{Contract-specific, full set of parameters of the contract (merged parameters of the defaults, the tariff, the profit participation scheme and the contract)}
+
+\item{\code{values}}{Contract values calculated so far (in the \code{contract$Values} list) then this method is called by the contract object}
+}
+\if{html}{\out{</div>}}
+}
+\subsection{Details}{
+Not to be called directly, but implicitly by the [InsuranceContract] object.
+}
+
 }
 \if{html}{\out{<hr>}}
 \if{html}{\out{<a id="method-getCostValues"></a>}}
 \if{latex}{\out{\hypertarget{method-getCostValues}{}}}
 \subsection{Method \code{getCostValues()}}{
+Obtain the cost structure from the cost parameter and the given paremeter set
 \subsection{Usage}{
 \if{html}{\out{<div class="r">}}\preformatted{InsuranceTarif$getCostValues(costs, params)}\if{html}{\out{</div>}}
 }
 
+\subsection{Arguments}{
+\if{html}{\out{<div class="arguments">}}
+\describe{
+\item{\code{costs}}{The cost parameter passed to the tarif definition or the contract (either an array of the form returned by [initializeCosts()] or a function(params, values) returning such an array)}
+
+\item{\code{params}}{Contract-specific, full set of parameters of the contract (merged parameters of the defaults, the tariff, the profit participation scheme and the contract)}
+}
+\if{html}{\out{</div>}}
+}
+\subsection{Details}{
+Not to be called directly, but implicitly by the [InsuranceContract] object.
+The cost parameter can be either an array of costs (generated by [initializeCosts()])
+or a function with parameters \code{param} and \code{values}(=NULL) returning
+an array of the required dimensions. This function makes sures that the
+latter function is actually evaluated.
+}
+
 }
 \if{html}{\out{<hr>}}
 \if{html}{\out{<a id="method-getPremiumCF"></a>}}
 \if{latex}{\out{\hypertarget{method-getPremiumCF}{}}}
 \subsection{Method \code{getPremiumCF()}}{
+Returns the unit premium cash flow for the whole contract period.
+  - For constant premiums it will be rep(1, premiumPeriod),
+  - for single premiums it will be c(1, 0, 0, ...),
+  - for increasing premiums it will be (1+increase)^(0:(premiumPeriod-1))
+and 0 after the premium period
 \subsection{Usage}{
 \if{html}{\out{<div class="r">}}\preformatted{InsuranceTarif$getPremiumCF(len, params, values)}\if{html}{\out{</div>}}
 }
 
+\subsection{Arguments}{
+\if{html}{\out{<div class="arguments">}}
+\describe{
+\item{\code{len}}{The desired length of the returned data frame (the number of contract periods desire)}
+
+\item{\code{params}}{Contract-specific, full set of parameters of the contract (merged parameters of the defaults, the tariff, the profit participation scheme and the contract)}
+
+\item{\code{values}}{Contract values calculated so far (in the \code{contract$Values} list) then this method is called by the contract object}
+}
+\if{html}{\out{</div>}}
+}
+\subsection{Details}{
+Not to be called directly, but implicitly by the [InsuranceContract] object.
+}
+
 }
 \if{html}{\out{<hr>}}
 \if{html}{\out{<a id="method-getAnnuityCF"></a>}}
 \if{latex}{\out{\hypertarget{method-getAnnuityCF}{}}}
 \subsection{Method \code{getAnnuityCF()}}{
+Returns the unit annuity cash flow (guaranteed and contingent) for
+    the whole annuity payment period (after potential deferral period)
+  - For constant annuity it will be rep(1, annuityPeriod),
+  - for increasing annuities it will be (1+increase)^(0:(premiumPeriod-1))
+and 0 after the premium period
 \subsection{Usage}{
 \if{html}{\out{<div class="r">}}\preformatted{InsuranceTarif$getAnnuityCF(len, params, values)}\if{html}{\out{</div>}}
 }
 
+\subsection{Arguments}{
+\if{html}{\out{<div class="arguments">}}
+\describe{
+\item{\code{len}}{The desired length of the returned data frame (the number of contract periods desire)}
+
+\item{\code{params}}{Contract-specific, full set of parameters of the contract (merged parameters of the defaults, the tariff, the profit participation scheme and the contract)}
+
+\item{\code{values}}{Contract values calculated so far (in the \code{contract$Values} list) then this method is called by the contract object}
+}
+\if{html}{\out{</div>}}
+}
+\subsection{Details}{
+Not to be called directly, but implicitly by the [InsuranceContract] object.
+}
+
 }
 \if{html}{\out{<hr>}}
 \if{html}{\out{<a id="method-getDeathCF"></a>}}
 \if{latex}{\out{\hypertarget{method-getDeathCF}{}}}
 \subsection{Method \code{getDeathCF()}}{
+Returns the unit death cash flow for the whole protection period (after potential deferral period!)
+  - For constant death benefit it will be rep(1, policyPeriod),
+  - for linearly decreasing sum insured it will be (policyPeriod:0)/policyPeriod
 \subsection{Usage}{
 \if{html}{\out{<div class="r">}}\preformatted{InsuranceTarif$getDeathCF(len, params, values)}\if{html}{\out{</div>}}
 }
 
+\subsection{Arguments}{
+\if{html}{\out{<div class="arguments">}}
+\describe{
+\item{\code{len}}{The desired length of the returned data frame (the number of contract periods desire)}
+
+\item{\code{params}}{Contract-specific, full set of parameters of the contract (merged parameters of the defaults, the tariff, the profit participation scheme and the contract)}
+
+\item{\code{values}}{Contract values calculated so far (in the \code{contract$Values} list) then this method is called by the contract object}
+}
+\if{html}{\out{</div>}}
+}
+\subsection{Details}{
+Not to be called directly, but implicitly by the [InsuranceContract] object.
+}
+
 }
 \if{html}{\out{<hr>}}
 \if{html}{\out{<a id="method-getBasicCashFlows"></a>}}
 \if{latex}{\out{\hypertarget{method-getBasicCashFlows}{}}}
 \subsection{Method \code{getBasicCashFlows()}}{
+Returns the basic (unit) cash flows associated with the type of insurance
+given in the [InsuranceContract@tariffType] field
 \subsection{Usage}{
 \if{html}{\out{<div class="r">}}\preformatted{InsuranceTarif$getBasicCashFlows(params, values)}\if{html}{\out{</div>}}
 }
 
+\subsection{Arguments}{
+\if{html}{\out{<div class="arguments">}}
+\describe{
+\item{\code{params}}{Contract-specific, full set of parameters of the contract (merged parameters of the defaults, the tariff, the profit participation scheme and the contract)}
+
+\item{\code{values}}{Contract values calculated so far (in the \code{contract$Values} list) then this method is called by the contract object}
+}
+\if{html}{\out{</div>}}
+}
+\subsection{Details}{
+Not to be called directly, but implicitly by the [InsuranceContract] object.
+}
+
 }
 \if{html}{\out{<hr>}}
 \if{html}{\out{<a id="method-getCashFlows"></a>}}
 \if{latex}{\out{\hypertarget{method-getCashFlows}{}}}
 \subsection{Method \code{getCashFlows()}}{
+Returns the cash flows for the contract given the parameters
 \subsection{Usage}{
 \if{html}{\out{<div class="r">}}\preformatted{InsuranceTarif$getCashFlows(params, values)}\if{html}{\out{</div>}}
 }
 
+\subsection{Arguments}{
+\if{html}{\out{<div class="arguments">}}
+\describe{
+\item{\code{params}}{Contract-specific, full set of parameters of the contract (merged parameters of the defaults, the tariff, the profit participation scheme and the contract)}
+
+\item{\code{values}}{Contract values calculated so far (in the \code{contract$Values} list) then this method is called by the contract object}
+}
+\if{html}{\out{</div>}}
+}
+\subsection{Details}{
+Not to be called directly, but implicitly by the [InsuranceContract] object.
+}
+
 }
 \if{html}{\out{<hr>}}
 \if{html}{\out{<a id="method-getCashFlowsCosts"></a>}}
 \if{latex}{\out{\hypertarget{method-getCashFlowsCosts}{}}}
 \subsection{Method \code{getCashFlowsCosts()}}{
+Returns the cost cash flows of the contract given the contract and tariff parameters
 \subsection{Usage}{
 \if{html}{\out{<div class="r">}}\preformatted{InsuranceTarif$getCashFlowsCosts(params, values)}\if{html}{\out{</div>}}
 }
 
+\subsection{Arguments}{
+\if{html}{\out{<div class="arguments">}}
+\describe{
+\item{\code{params}}{Contract-specific, full set of parameters of the contract (merged parameters of the defaults, the tariff, the profit participation scheme and the contract)}
+
+\item{\code{values}}{Contract values calculated so far (in the \code{contract$Values} list) then this method is called by the contract object}
+}
+\if{html}{\out{</div>}}
+}
+\subsection{Details}{
+Not to be called directly, but implicitly by the [InsuranceContract] object.
+}
+
 }
 \if{html}{\out{<hr>}}
 \if{html}{\out{<a id="method-presentValueCashFlows"></a>}}
 \if{latex}{\out{\hypertarget{method-presentValueCashFlows}{}}}
 \subsection{Method \code{presentValueCashFlows()}}{
+Returns the present values of the cash flows of the contract (cash flows already calculated and stored in the \code{cashFlows} data.frame)
 \subsection{Usage}{
 \if{html}{\out{<div class="r">}}\preformatted{InsuranceTarif$presentValueCashFlows(cashFlows, params, values)}\if{html}{\out{</div>}}
 }
 
+\subsection{Arguments}{
+\if{html}{\out{<div class="arguments">}}
+\describe{
+\item{\code{cashFlows}}{data.frame of cash flows calculated by a call to [InsuranceTarif@getCashFlows()]}
+
+\item{\code{params}}{Contract-specific, full set of parameters of the contract (merged parameters of the defaults, the tariff, the profit participation scheme and the contract)}
+
+\item{\code{values}}{Contract values calculated so far (in the \code{contract$Values} list) then this method is called by the contract object}
+}
+\if{html}{\out{</div>}}
+}
+\subsection{Details}{
+Not to be called directly, but implicitly by the [InsuranceContract] object.
+}
+
 }
 \if{html}{\out{<hr>}}
 \if{html}{\out{<a id="method-presentValueCashFlowsCosts"></a>}}
 \if{latex}{\out{\hypertarget{method-presentValueCashFlowsCosts}{}}}
 \subsection{Method \code{presentValueCashFlowsCosts()}}{
+Calculates the present values of the cost cash flows of the contract (cost cash flows alreay calculated by [InsuranceTarif@getCashFlowsCosts()] and stored in the \code{values} list
 \subsection{Usage}{
 \if{html}{\out{<div class="r">}}\preformatted{InsuranceTarif$presentValueCashFlowsCosts(params, values)}\if{html}{\out{</div>}}
 }
 
+\subsection{Arguments}{
+\if{html}{\out{<div class="arguments">}}
+\describe{
+\item{\code{params}}{Contract-specific, full set of parameters of the contract (merged parameters of the defaults, the tariff, the profit participation scheme and the contract)}
+
+\item{\code{values}}{Contract values calculated so far (in the \code{contract$Values} list) then this method is called by the contract object}
+}
+\if{html}{\out{</div>}}
+}
+\subsection{Details}{
+Not to be called directly, but implicitly by the [InsuranceContract] object.
+}
+
 }
 \if{html}{\out{<hr>}}
 \if{html}{\out{<a id="method-costValuesAsMatrix"></a>}}
 \if{latex}{\out{\hypertarget{method-costValuesAsMatrix}{}}}
 \subsection{Method \code{costValuesAsMatrix()}}{
+Convert the cost values array to a tx15 matrix
 \subsection{Usage}{
 \if{html}{\out{<div class="r">}}\preformatted{InsuranceTarif$costValuesAsMatrix(costValues)}\if{html}{\out{</div>}}
 }
 
+\subsection{Arguments}{
+\if{html}{\out{<div class="arguments">}}
+\describe{
+\item{\code{costValues}}{The cost data structure (array of size tx5x3) to be converted to a matrix}
+}
+\if{html}{\out{</div>}}
+}
+\subsection{Details}{
+Not to be called directly, but implicitly by the [InsuranceContract] object.
+Convert the array containing cost values like cashflows, present
+values, etc. (objects of dimension tx5x3) to a matrix with dimensions (tx15)
+}
+
 }
 \if{html}{\out{<hr>}}
 \if{html}{\out{<a id="method-getAbsCashFlows"></a>}}
 \if{latex}{\out{\hypertarget{method-getAbsCashFlows}{}}}
 \subsection{Method \code{getAbsCashFlows()}}{
+Calculate the cash flows in monetary terms of the insurance contract
 \subsection{Usage}{
 \if{html}{\out{<div class="r">}}\preformatted{InsuranceTarif$getAbsCashFlows(params, values)}\if{html}{\out{</div>}}
 }
 
+\subsection{Arguments}{
+\if{html}{\out{<div class="arguments">}}
+\describe{
+\item{\code{params}}{Contract-specific, full set of parameters of the contract (merged parameters of the defaults, the tariff, the profit participation scheme and the contract)}
+
+\item{\code{values}}{Contract values calculated so far (in the \code{contract$Values} list) then this method is called by the contract object}
+}
+\if{html}{\out{</div>}}
+}
+\subsection{Details}{
+Once the premiums of the insurance contracts are calculated, all
+cash flows can also be expressed in absolute terms. This function
+calculates these time series in monetary terms, once the premiums
+are calculated by the previous functions of this class.
+
+This method is NOT to be called directly, but implicitly by the [InsuranceContract] object.
+}
+
 }
 \if{html}{\out{<hr>}}
 \if{html}{\out{<a id="method-getAbsPresentValues"></a>}}
 \if{latex}{\out{\hypertarget{method-getAbsPresentValues}{}}}
 \subsection{Method \code{getAbsPresentValues()}}{
+Calculate the absolute present value time series of the insurance contract
 \subsection{Usage}{
 \if{html}{\out{<div class="r">}}\preformatted{InsuranceTarif$getAbsPresentValues(params, values)}\if{html}{\out{</div>}}
 }
 
+\subsection{Arguments}{
+\if{html}{\out{<div class="arguments">}}
+\describe{
+\item{\code{params}}{Contract-specific, full set of parameters of the contract (merged parameters of the defaults, the tariff, the profit participation scheme and the contract)}
+
+\item{\code{values}}{Contract values calculated so far (in the \code{contract$Values} list) then this method is called by the contract object}
+}
+\if{html}{\out{</div>}}
+}
+\subsection{Details}{
+Once the premiums of the insurance contracts are calculated, all
+present values can also be expressed in absolute terms. This function
+calculates these time series in monetary terms, once the premiums and the unit-benefit present values are calculated by the previous functions of this classe.
+
+This method is NOT to be called directly, but implicitly by the [InsuranceContract] object.
+}
+
 }
 \if{html}{\out{<hr>}}
 \if{html}{\out{<a id="method-presentValueBenefits"></a>}}
 \if{latex}{\out{\hypertarget{method-presentValueBenefits}{}}}
 \subsection{Method \code{presentValueBenefits()}}{
+Calculate the absolute present value time series of the benefits of the insurance contract
 \subsection{Usage}{
 \if{html}{\out{<div class="r">}}\preformatted{InsuranceTarif$presentValueBenefits(params, values)}\if{html}{\out{</div>}}
 }
 
+\subsection{Arguments}{
+\if{html}{\out{<div class="arguments">}}
+\describe{
+\item{\code{params}}{Contract-specific, full set of parameters of the contract (merged parameters of the defaults, the tariff, the profit participation scheme and the contract)}
+
+\item{\code{values}}{Contract values calculated so far (in the \code{contract$Values} list) then this method is called by the contract object}
+}
+\if{html}{\out{</div>}}
+}
+\subsection{Details}{
+Once the premiums of the insurance contracts are calculated, all
+present values can also be expressed in absolute terms. This function
+calculates these time series of the benefits present values in monetary
+terms, once the premiums and the unit-benefit present values are calculated
+ by the previous functions of this classe.
+
+This method is NOT to be called directly, but implicitly by the [InsuranceContract] object.
+}
+
 }
 \if{html}{\out{<hr>}}
 \if{html}{\out{<a id="method-getPremiumCoefficients"></a>}}
 \if{latex}{\out{\hypertarget{method-getPremiumCoefficients}{}}}
 \subsection{Method \code{getPremiumCoefficients()}}{
+Calculate the linear coefficients of the premium calculation formula for the insurance contract
 \subsection{Usage}{
 \if{html}{\out{<div class="r">}}\preformatted{InsuranceTarif$getPremiumCoefficients(
   type = "gross",
@@ -246,11 +701,45 @@ tariff-specific calculations.
 )}\if{html}{\out{</div>}}
 }
 
+\subsection{Arguments}{
+\if{html}{\out{<div class="arguments">}}
+\describe{
+\item{\code{type}}{The premium that is supposed to be calculated ("gross", "Zillmer", "net")}
+
+\item{\code{coeffBenefits}}{(empty) data structure of the benefit coefficients. The actual values have no meaning, this parameter is only used to derive the required dimensions}
+
+\item{\code{coeffCosts}}{(empty) data structure of the cost coefficients. The actual values have no meaning, this parameter is only used to derive the required dimensions}
+
+\item{\code{premiums}}{The premium components that have already been calculated
+(e.g. for net and Zillmer, the gross premium has already been
+calculated to allow modelling the premium refund)}
+
+\item{\code{params}}{Contract-specific, full set of parameters of the contract (merged parameters of the defaults, the tariff, the profit participation scheme and the contract)}
+
+\item{\code{values}}{Contract values calculated so far (in the \code{contract$Values} list) then this method is called by the contract object}
+
+\item{\code{premiumCalculationTime}}{The time when the premiums should be
+(re-)calculated according to the equivalence principle. A time 0
+means the initial premium calculation at contract closing, later
+premium calculation times can be used to re-calculate the new
+premium after a contract change (possibly including an existing reserve)}
+}
+\if{html}{\out{</div>}}
+}
+\subsection{Details}{
+Not to be called directly, but implicitly by the [InsuranceContract] object.
+When \code{getPremiumCoefficients} is called, the \code{values$premiums}
+array has NOT yet been filled! Instead, all premiums already calculated
+(and required for the premium coefficients) are passed in the \code{premiums}
+argument.
+}
+
 }
 \if{html}{\out{<hr>}}
 \if{html}{\out{<a id="method-premiumCalculation"></a>}}
 \if{latex}{\out{\hypertarget{method-premiumCalculation}{}}}
 \subsection{Method \code{premiumCalculation()}}{
+Calculate the premiums of the InsuranceContract given the parameters, present values and premium cofficients already calculated and stored in the \code{params} and \code{values} lists.
 \subsection{Usage}{
 \if{html}{\out{<div class="r">}}\preformatted{InsuranceTarif$premiumCalculation(
   params,
@@ -259,87 +748,234 @@ tariff-specific calculations.
 )}\if{html}{\out{</div>}}
 }
 
+\subsection{Arguments}{
+\if{html}{\out{<div class="arguments">}}
+\describe{
+\item{\code{params}}{Contract-specific, full set of parameters of the contract (merged parameters of the defaults, the tariff, the profit participation scheme and the contract)}
+
+\item{\code{values}}{Contract values calculated so far (in the \code{contract$Values} list) then this method is called by the contract object}
+
+\item{\code{premiumCalculationTime}}{The time when the premiums should be
+(re-)calculated according to the equivalence principle. A time 0
+means the initial premium calculation at contract closing, later
+premium calculation times can be used to re-calculate the new
+premium after a contract change (possibly including an existing reserve)}
+}
+\if{html}{\out{</div>}}
+}
+\subsection{Details}{
+Not to be called directly, but implicitly by the [InsuranceContract] object.
+}
+
 }
 \if{html}{\out{<hr>}}
 \if{html}{\out{<a id="method-reserveCalculation"></a>}}
 \if{latex}{\out{\hypertarget{method-reserveCalculation}{}}}
 \subsection{Method \code{reserveCalculation()}}{
+Calculate the reserves of the InsuranceContract given the parameters, present values and premiums already calculated and stored in the \code{params} and \code{values} lists.
 \subsection{Usage}{
 \if{html}{\out{<div class="r">}}\preformatted{InsuranceTarif$reserveCalculation(params, values)}\if{html}{\out{</div>}}
 }
 
+\subsection{Arguments}{
+\if{html}{\out{<div class="arguments">}}
+\describe{
+\item{\code{params}}{Contract-specific, full set of parameters of the contract (merged parameters of the defaults, the tariff, the profit participation scheme and the contract)}
+
+\item{\code{values}}{Contract values calculated so far (in the \code{contract$Values} list) then this method is called by the contract object}
+}
+\if{html}{\out{</div>}}
+}
+\subsection{Details}{
+Not to be called directly, but implicitly by the [InsuranceContract] object.
+}
+
 }
 \if{html}{\out{<hr>}}
 \if{html}{\out{<a id="method-getBalanceSheetReserveFactor"></a>}}
 \if{latex}{\out{\hypertarget{method-getBalanceSheetReserveFactor}{}}}
 \subsection{Method \code{getBalanceSheetReserveFactor()}}{
+Calculate the (linear) interpolation factors for the balance sheet reserve (Dec. 31) between the yearly contract clowing dates
 \subsection{Usage}{
 \if{html}{\out{<div class="r">}}\preformatted{InsuranceTarif$getBalanceSheetReserveFactor(params, years = 1)}\if{html}{\out{</div>}}
 }
 
+\subsection{Arguments}{
+\if{html}{\out{<div class="arguments">}}
+\describe{
+\item{\code{params}}{Contract-specific, full set of parameters of the contract (merged parameters of the defaults, the tariff, the profit participation scheme and the contract)}
+
+\item{\code{years}}{how many years to calculate (for some usances, the factor is different in leap years!)}
+}
+\if{html}{\out{</div>}}
+}
+\subsection{Details}{
+Not to be called directly, but implicitly by the [InsuranceContract] object.
+}
+
 }
 \if{html}{\out{<hr>}}
 \if{html}{\out{<a id="method-reserveCalculationBalanceSheet"></a>}}
 \if{latex}{\out{\hypertarget{method-reserveCalculationBalanceSheet}{}}}
 \subsection{Method \code{reserveCalculationBalanceSheet()}}{
+Calculate the reserves for the balance sheets at Dec. 31 of each
+             year by interpolation from the contract values calculated for
+             the yearly reference date of the contract
 \subsection{Usage}{
 \if{html}{\out{<div class="r">}}\preformatted{InsuranceTarif$reserveCalculationBalanceSheet(params, values)}\if{html}{\out{</div>}}
 }
 
+\subsection{Arguments}{
+\if{html}{\out{<div class="arguments">}}
+\describe{
+\item{\code{params}}{Contract-specific, full set of parameters of the contract (merged parameters of the defaults, the tariff, the profit participation scheme and the contract)}
+
+\item{\code{values}}{Contract values calculated so far (in the \code{contract$Values} list) then this method is called by the contract object}
+}
+\if{html}{\out{</div>}}
+}
+\subsection{Details}{
+Not to be called directly, but implicitly by the [InsuranceContract] object.
+}
+
 }
 \if{html}{\out{<hr>}}
 \if{html}{\out{<a id="method-calculateProfitParticipation"></a>}}
 \if{latex}{\out{\hypertarget{method-calculateProfitParticipation}{}}}
 \subsection{Method \code{calculateProfitParticipation()}}{
+Calculate the profit participation given the contract parameters and the already calculated reserves of the contract.
 \subsection{Usage}{
 \if{html}{\out{<div class="r">}}\preformatted{InsuranceTarif$calculateProfitParticipation(params, ...)}\if{html}{\out{</div>}}
 }
 
+\subsection{Arguments}{
+\if{html}{\out{<div class="arguments">}}
+\describe{
+\item{\code{params}}{Contract-specific, full set of parameters of the contract (merged parameters of the defaults, the tariff, the profit participation scheme and the contract)}
+
+\item{\code{...}}{Additional parameters for the profit participation calculation, passed
+through to the profit participation scheme's [ProfitParticipation$getProfitParticipation()]}
+}
+\if{html}{\out{</div>}}
+}
+\subsection{Details}{
+Not to be called directly, but implicitly by the [InsuranceContract] object.
+}
+
 }
 \if{html}{\out{<hr>}}
 \if{html}{\out{<a id="method-reservesAfterProfit"></a>}}
 \if{latex}{\out{\hypertarget{method-reservesAfterProfit}{}}}
 \subsection{Method \code{reservesAfterProfit()}}{
+Calculate the reserves after profit participation for the given profit scenario
 \subsection{Usage}{
 \if{html}{\out{<div class="r">}}\preformatted{InsuranceTarif$reservesAfterProfit(profitScenario, params, values, ...)}\if{html}{\out{</div>}}
 }
 
+\subsection{Arguments}{
+\if{html}{\out{<div class="arguments">}}
+\describe{
+\item{\code{profitScenario}}{The ID of the profit scenario for which to calculate the reserves}
+
+\item{\code{params}}{Contract-specific, full set of parameters of the contract (merged parameters of the defaults, the tariff, the profit participation scheme and the contract)}
+
+\item{\code{values}}{Contract values calculated so far (in the \code{contract$Values} list) then this method is called by the contract object}
+
+\item{\code{...}}{TODO}
+}
+\if{html}{\out{</div>}}
+}
+\subsection{Details}{
+Not to be called directly, but implicitly by the [InsuranceContract] object.
+}
+
 }
 \if{html}{\out{<hr>}}
 \if{html}{\out{<a id="method-getBasicDataTimeseries"></a>}}
 \if{latex}{\out{\hypertarget{method-getBasicDataTimeseries}{}}}
 \subsection{Method \code{getBasicDataTimeseries()}}{
+Return the time series of the basic contract
 \subsection{Usage}{
 \if{html}{\out{<div class="r">}}\preformatted{InsuranceTarif$getBasicDataTimeseries(params, values)}\if{html}{\out{</div>}}
 }
 
+\subsection{Arguments}{
+\if{html}{\out{<div class="arguments">}}
+\describe{
+\item{\code{params}}{Contract-specific, full set of parameters of the contract (merged parameters of the defaults, the tariff, the profit participation scheme and the contract)}
+
+\item{\code{values}}{Contract values calculated so far (in the \code{contract$Values} list) then this method is called by the contract object}
+}
+\if{html}{\out{</div>}}
+}
+\subsection{Details}{
+Not to be called directly, but implicitly by the [InsuranceContract] object.
+}
+
 }
 \if{html}{\out{<hr>}}
 \if{html}{\out{<a id="method-premiumDecomposition"></a>}}
 \if{latex}{\out{\hypertarget{method-premiumDecomposition}{}}}
 \subsection{Method \code{premiumDecomposition()}}{
+Calculate the time series of the premium decomposition of the contract
 \subsection{Usage}{
 \if{html}{\out{<div class="r">}}\preformatted{InsuranceTarif$premiumDecomposition(params, values)}\if{html}{\out{</div>}}
 }
 
+\subsection{Arguments}{
+\if{html}{\out{<div class="arguments">}}
+\describe{
+\item{\code{params}}{Contract-specific, full set of parameters of the contract (merged parameters of the defaults, the tariff, the profit participation scheme and the contract)}
+
+\item{\code{values}}{Contract values calculated so far (in the \code{contract$Values} list) then this method is called by the contract object}
+}
+\if{html}{\out{</div>}}
+}
+\subsection{Details}{
+Not to be called directly, but implicitly by the [InsuranceContract] object.
+         All premiums, reserves and present values have already been calculated.
+}
+
 }
 \if{html}{\out{<hr>}}
 \if{html}{\out{<a id="method-calculateFutureSums"></a>}}
 \if{latex}{\out{\hypertarget{method-calculateFutureSums}{}}}
 \subsection{Method \code{calculateFutureSums()}}{
+Generic function to calculate future sums of the values
 \subsection{Usage}{
 \if{html}{\out{<div class="r">}}\preformatted{InsuranceTarif$calculateFutureSums(values, ...)}\if{html}{\out{</div>}}
 }
 
+\subsection{Arguments}{
+\if{html}{\out{<div class="arguments">}}
+\describe{
+\item{\code{values}}{The time series, for which future sums at all times are desired}
+
+\item{\code{...}}{currently unused}
+}
+\if{html}{\out{</div>}}
+}
 }
 \if{html}{\out{<hr>}}
 \if{html}{\out{<a id="method-calculatePresentValues"></a>}}
 \if{latex}{\out{\hypertarget{method-calculatePresentValues}{}}}
 \subsection{Method \code{calculatePresentValues()}}{
+Calculate all present values for a given time series. The mortalities are taken from the contract's parameters.
 \subsection{Usage}{
 \if{html}{\out{<div class="r">}}\preformatted{InsuranceTarif$calculatePresentValues(values, params)}\if{html}{\out{</div>}}
 }
 
+\subsection{Arguments}{
+\if{html}{\out{<div class="arguments">}}
+\describe{
+\item{\code{values}}{The time series, for which future present values at all times are desired}
+
+\item{\code{params}}{Contract-specific, full set of parameters of the contract (merged parameters of the defaults, the tariff, the profit participation scheme and the contract)}
+
+\item{\code{...}}{currently unused}
+}
+\if{html}{\out{</div>}}
+}
 }
 \if{html}{\out{<hr>}}
 \if{html}{\out{<a id="method-clone"></a>}}
diff --git a/vignettes/using-the-lifeinsurancecontracts-package.R b/vignettes/using-the-lifeinsurancecontracts-package.R
index 30e93dbcea12b2ad76099bb46f55f85d0ff629b0..f814edf7ebd82b56450ba790778f4105bbb257b1 100644
--- a/vignettes/using-the-lifeinsurancecontracts-package.R
+++ b/vignettes/using-the-lifeinsurancecontracts-package.R
@@ -1,4 +1,4 @@
-## ----echo = FALSE, message=FALSE-----------------------------------------
+## ----echo = FALSE, message=FALSE----------------------------------------------
 knitr::opts_chunk$set(collapse = TRUE, comment = "#>")
 library(pander)
 library(LifeInsuranceContracts)
@@ -85,10 +85,10 @@ pandoc.listRK <- function(...)
 
 
 
-## ------------------------------------------------------------------------
+## -----------------------------------------------------------------------------
 str(InsuranceContract.ParameterDefaults)
 
-## ---- results="asis"-----------------------------------------------------
+## ---- results="asis"----------------------------------------------------------
 
 #pandoc.listRK(InsuranceContract.ParameterDefaults)
 
diff --git a/vignettes/using-the-lifeinsurancecontracts-package.html b/vignettes/using-the-lifeinsurancecontracts-package.html
index fb3cdf95f981cd30d6355a5924d3c86ce505c9fb..774a48e4d3efd5b56cee34abd7a44151fc18544a 100644
--- a/vignettes/using-the-lifeinsurancecontracts-package.html
+++ b/vignettes/using-the-lifeinsurancecontracts-package.html
@@ -1,64 +1,313 @@
 <!DOCTYPE html>
 
-<html xmlns="http://www.w3.org/1999/xhtml">
+<html>
 
 <head>
 
-<meta charset="utf-8">
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<meta charset="utf-8" />
 <meta name="generator" content="pandoc" />
+<meta http-equiv="X-UA-Compatible" content="IE=EDGE" />
 
-<meta name="viewport" content="width=device-width, initial-scale=1">
+<meta name="viewport" content="width=device-width, initial-scale=1" />
 
 
-<meta name="date" content="2016-09-06" />
+<meta name="date" content="2020-08-12" />
 
 <title>Using the LifeInsuranceContracts Package</title>
 
+<script>// Hide empty <a> tag within highlighted CodeBlock for screen reader accessibility (see https://github.com/jgm/pandoc/issues/6352#issuecomment-626106786) -->
+// v0.0.1
+// Written by JooYoung Seo (jooyoung@psu.edu) and Atsushi Yasumoto on June 1st, 2020.
+
+document.addEventListener('DOMContentLoaded', function() {
+  const codeList = document.getElementsByClassName("sourceCode");
+  for (var i = 0; i < codeList.length; i++) {
+    var linkList = codeList[i].getElementsByTagName('a');
+    for (var j = 0; j < linkList.length; j++) {
+      if (linkList[j].innerHTML === "") {
+        linkList[j].setAttribute('aria-hidden', 'true');
+      }
+    }
+  }
+});
+</script>
 
 
 <style type="text/css">code{white-space: pre;}</style>
-<style type="text/css">
-div.sourceCode { overflow-x: auto; }
-table.sourceCode, tr.sourceCode, td.lineNumbers, td.sourceCode {
-  margin: 0; padding: 0; vertical-align: baseline; border: none; }
-table.sourceCode { width: 100%; line-height: 100%; }
-td.lineNumbers { text-align: right; padding-right: 4px; padding-left: 4px; color: #aaaaaa; border-right: 1px solid #aaaaaa; }
-td.sourceCode { padding-left: 5px; }
-code > span.kw { color: #007020; font-weight: bold; } /* Keyword */
-code > span.dt { color: #902000; } /* DataType */
-code > span.dv { color: #40a070; } /* DecVal */
-code > span.bn { color: #40a070; } /* BaseN */
-code > span.fl { color: #40a070; } /* Float */
-code > span.ch { color: #4070a0; } /* Char */
-code > span.st { color: #4070a0; } /* String */
-code > span.co { color: #60a0b0; font-style: italic; } /* Comment */
-code > span.ot { color: #007020; } /* Other */
-code > span.al { color: #ff0000; font-weight: bold; } /* Alert */
-code > span.fu { color: #06287e; } /* Function */
-code > span.er { color: #ff0000; font-weight: bold; } /* Error */
-code > span.wa { color: #60a0b0; font-weight: bold; font-style: italic; } /* Warning */
-code > span.cn { color: #880000; } /* Constant */
-code > span.sc { color: #4070a0; } /* SpecialChar */
-code > span.vs { color: #4070a0; } /* VerbatimString */
-code > span.ss { color: #bb6688; } /* SpecialString */
-code > span.im { } /* Import */
-code > span.va { color: #19177c; } /* Variable */
-code > span.cf { color: #007020; font-weight: bold; } /* ControlFlow */
-code > span.op { color: #666666; } /* Operator */
-code > span.bu { } /* BuiltIn */
-code > span.ex { } /* Extension */
-code > span.pp { color: #bc7a00; } /* Preprocessor */
-code > span.at { color: #7d9029; } /* Attribute */
-code > span.do { color: #ba2121; font-style: italic; } /* Documentation */
-code > span.an { color: #60a0b0; font-weight: bold; font-style: italic; } /* Annotation */
-code > span.cv { color: #60a0b0; font-weight: bold; font-style: italic; } /* CommentVar */
-code > span.in { color: #60a0b0; font-weight: bold; font-style: italic; } /* Information */
+<style type="text/css" data-origin="pandoc">
+code.sourceCode > span { display: inline-block; line-height: 1.25; }
+code.sourceCode > span { color: inherit; text-decoration: inherit; }
+code.sourceCode > span:empty { height: 1.2em; }
+.sourceCode { overflow: visible; }
+code.sourceCode { white-space: pre; position: relative; }
+div.sourceCode { margin: 1em 0; }
+pre.sourceCode { margin: 0; }
+@media screen {
+div.sourceCode { overflow: auto; }
+}
+@media print {
+code.sourceCode { white-space: pre-wrap; }
+code.sourceCode > span { text-indent: -5em; padding-left: 5em; }
+}
+pre.numberSource code
+  { counter-reset: source-line 0; }
+pre.numberSource code > span
+  { position: relative; left: -4em; counter-increment: source-line; }
+pre.numberSource code > span > a:first-child::before
+  { content: counter(source-line);
+    position: relative; left: -1em; text-align: right; vertical-align: baseline;
+    border: none; display: inline-block;
+    -webkit-touch-callout: none; -webkit-user-select: none;
+    -khtml-user-select: none; -moz-user-select: none;
+    -ms-user-select: none; user-select: none;
+    padding: 0 4px; width: 4em;
+    color: #aaaaaa;
+  }
+pre.numberSource { margin-left: 3em; border-left: 1px solid #aaaaaa;  padding-left: 4px; }
+div.sourceCode
+  {   }
+@media screen {
+code.sourceCode > span > a:first-child::before { text-decoration: underline; }
+}
+code span.al { color: #ff0000; font-weight: bold; } /* Alert */
+code span.an { color: #60a0b0; font-weight: bold; font-style: italic; } /* Annotation */
+code span.at { color: #7d9029; } /* Attribute */
+code span.bn { color: #40a070; } /* BaseN */
+code span.bu { } /* BuiltIn */
+code span.cf { color: #007020; font-weight: bold; } /* ControlFlow */
+code span.ch { color: #4070a0; } /* Char */
+code span.cn { color: #880000; } /* Constant */
+code span.co { color: #60a0b0; font-style: italic; } /* Comment */
+code span.cv { color: #60a0b0; font-weight: bold; font-style: italic; } /* CommentVar */
+code span.do { color: #ba2121; font-style: italic; } /* Documentation */
+code span.dt { color: #902000; } /* DataType */
+code span.dv { color: #40a070; } /* DecVal */
+code span.er { color: #ff0000; font-weight: bold; } /* Error */
+code span.ex { } /* Extension */
+code span.fl { color: #40a070; } /* Float */
+code span.fu { color: #06287e; } /* Function */
+code span.im { } /* Import */
+code span.in { color: #60a0b0; font-weight: bold; font-style: italic; } /* Information */
+code span.kw { color: #007020; font-weight: bold; } /* Keyword */
+code span.op { color: #666666; } /* Operator */
+code span.ot { color: #007020; } /* Other */
+code span.pp { color: #bc7a00; } /* Preprocessor */
+code span.sc { color: #4070a0; } /* SpecialChar */
+code span.ss { color: #bb6688; } /* SpecialString */
+code span.st { color: #4070a0; } /* String */
+code span.va { color: #19177c; } /* Variable */
+code span.vs { color: #4070a0; } /* VerbatimString */
+code span.wa { color: #60a0b0; font-weight: bold; font-style: italic; } /* Warning */
+
+</style>
+<script>
+// apply pandoc div.sourceCode style to pre.sourceCode instead
+(function() {
+  var sheets = document.styleSheets;
+  for (var i = 0; i < sheets.length; i++) {
+    if (sheets[i].ownerNode.dataset["origin"] !== "pandoc") continue;
+    try { var rules = sheets[i].cssRules; } catch (e) { continue; }
+    for (var j = 0; j < rules.length; j++) {
+      var rule = rules[j];
+      // check if there is a div.sourceCode rule
+      if (rule.type !== rule.STYLE_RULE || rule.selectorText !== "div.sourceCode") continue;
+      var style = rule.style.cssText;
+      // check if color or background-color is set
+      if (rule.style.color === '' && rule.style.backgroundColor === '') continue;
+      // replace div.sourceCode by a pre.sourceCode rule
+      sheets[i].deleteRule(j);
+      sheets[i].insertRule('pre.sourceCode{' + style + '}', j);
+    }
+  }
+})();
+</script>
+
+
+
+<style type="text/css">body {
+background-color: #fff;
+margin: 1em auto;
+max-width: 700px;
+overflow: visible;
+padding-left: 2em;
+padding-right: 2em;
+font-family: "Open Sans", "Helvetica Neue", Helvetica, Arial, sans-serif;
+font-size: 14px;
+line-height: 1.35;
+}
+#TOC {
+clear: both;
+margin: 0 0 10px 10px;
+padding: 4px;
+width: 400px;
+border: 1px solid #CCCCCC;
+border-radius: 5px;
+background-color: #f6f6f6;
+font-size: 13px;
+line-height: 1.3;
+}
+#TOC .toctitle {
+font-weight: bold;
+font-size: 15px;
+margin-left: 5px;
+}
+#TOC ul {
+padding-left: 40px;
+margin-left: -1.5em;
+margin-top: 5px;
+margin-bottom: 5px;
+}
+#TOC ul ul {
+margin-left: -2em;
+}
+#TOC li {
+line-height: 16px;
+}
+table {
+margin: 1em auto;
+border-width: 1px;
+border-color: #DDDDDD;
+border-style: outset;
+border-collapse: collapse;
+}
+table th {
+border-width: 2px;
+padding: 5px;
+border-style: inset;
+}
+table td {
+border-width: 1px;
+border-style: inset;
+line-height: 18px;
+padding: 5px 5px;
+}
+table, table th, table td {
+border-left-style: none;
+border-right-style: none;
+}
+table thead, table tr.even {
+background-color: #f7f7f7;
+}
+p {
+margin: 0.5em 0;
+}
+blockquote {
+background-color: #f6f6f6;
+padding: 0.25em 0.75em;
+}
+hr {
+border-style: solid;
+border: none;
+border-top: 1px solid #777;
+margin: 28px 0;
+}
+dl {
+margin-left: 0;
+}
+dl dd {
+margin-bottom: 13px;
+margin-left: 13px;
+}
+dl dt {
+font-weight: bold;
+}
+ul {
+margin-top: 0;
+}
+ul li {
+list-style: circle outside;
+}
+ul ul {
+margin-bottom: 0;
+}
+pre, code {
+background-color: #f7f7f7;
+border-radius: 3px;
+color: #333;
+white-space: pre-wrap; 
+}
+pre {
+border-radius: 3px;
+margin: 5px 0px 10px 0px;
+padding: 10px;
+}
+pre:not([class]) {
+background-color: #f7f7f7;
+}
+code {
+font-family: Consolas, Monaco, 'Courier New', monospace;
+font-size: 85%;
+}
+p > code, li > code {
+padding: 2px 0px;
+}
+div.figure {
+text-align: center;
+}
+img {
+background-color: #FFFFFF;
+padding: 2px;
+border: 1px solid #DDDDDD;
+border-radius: 3px;
+border: 1px solid #CCCCCC;
+margin: 0 5px;
+}
+h1 {
+margin-top: 0;
+font-size: 35px;
+line-height: 40px;
+}
+h2 {
+border-bottom: 4px solid #f7f7f7;
+padding-top: 10px;
+padding-bottom: 2px;
+font-size: 145%;
+}
+h3 {
+border-bottom: 2px solid #f7f7f7;
+padding-top: 10px;
+font-size: 120%;
+}
+h4 {
+border-bottom: 1px solid #f7f7f7;
+margin-left: 8px;
+font-size: 105%;
+}
+h5, h6 {
+border-bottom: 1px solid #ccc;
+font-size: 105%;
+}
+a {
+color: #0033dd;
+text-decoration: none;
+}
+a:hover {
+color: #6666ff; }
+a:visited {
+color: #800080; }
+a:visited:hover {
+color: #BB00BB; }
+a[href^="http:"] {
+text-decoration: underline; }
+a[href^="https:"] {
+text-decoration: underline; }
+
+code > span.kw { color: #555; font-weight: bold; } 
+code > span.dt { color: #902000; } 
+code > span.dv { color: #40a070; } 
+code > span.bn { color: #d14; } 
+code > span.fl { color: #d14; } 
+code > span.ch { color: #d14; } 
+code > span.st { color: #d14; } 
+code > span.co { color: #888888; font-style: italic; } 
+code > span.ot { color: #007020; } 
+code > span.al { color: #ff0000; font-weight: bold; } 
+code > span.fu { color: #900; font-weight: bold; } 
+code > span.er { color: #a61717; background-color: #e3d2d2; } 
 </style>
 
 
 
-<link href="data:text/css;charset=utf-8,body%20%7B%0Abackground%2Dcolor%3A%20%23fff%3B%0Amargin%3A%201em%20auto%3B%0Amax%2Dwidth%3A%20700px%3B%0Aoverflow%3A%20visible%3B%0Apadding%2Dleft%3A%202em%3B%0Apadding%2Dright%3A%202em%3B%0Afont%2Dfamily%3A%20%22Open%20Sans%22%2C%20%22Helvetica%20Neue%22%2C%20Helvetica%2C%20Arial%2C%20sans%2Dserif%3B%0Afont%2Dsize%3A%2014px%3B%0Aline%2Dheight%3A%201%2E35%3B%0A%7D%0A%23header%20%7B%0Atext%2Dalign%3A%20center%3B%0A%7D%0A%23TOC%20%7B%0Aclear%3A%20both%3B%0Amargin%3A%200%200%2010px%2010px%3B%0Apadding%3A%204px%3B%0Awidth%3A%20400px%3B%0Aborder%3A%201px%20solid%20%23CCCCCC%3B%0Aborder%2Dradius%3A%205px%3B%0Abackground%2Dcolor%3A%20%23f6f6f6%3B%0Afont%2Dsize%3A%2013px%3B%0Aline%2Dheight%3A%201%2E3%3B%0A%7D%0A%23TOC%20%2Etoctitle%20%7B%0Afont%2Dweight%3A%20bold%3B%0Afont%2Dsize%3A%2015px%3B%0Amargin%2Dleft%3A%205px%3B%0A%7D%0A%23TOC%20ul%20%7B%0Apadding%2Dleft%3A%2040px%3B%0Amargin%2Dleft%3A%20%2D1%2E5em%3B%0Amargin%2Dtop%3A%205px%3B%0Amargin%2Dbottom%3A%205px%3B%0A%7D%0A%23TOC%20ul%20ul%20%7B%0Amargin%2Dleft%3A%20%2D2em%3B%0A%7D%0A%23TOC%20li%20%7B%0Aline%2Dheight%3A%2016px%3B%0A%7D%0Atable%20%7B%0Amargin%3A%201em%20auto%3B%0Aborder%2Dwidth%3A%201px%3B%0Aborder%2Dcolor%3A%20%23DDDDDD%3B%0Aborder%2Dstyle%3A%20outset%3B%0Aborder%2Dcollapse%3A%20collapse%3B%0A%7D%0Atable%20th%20%7B%0Aborder%2Dwidth%3A%202px%3B%0Apadding%3A%205px%3B%0Aborder%2Dstyle%3A%20inset%3B%0A%7D%0Atable%20td%20%7B%0Aborder%2Dwidth%3A%201px%3B%0Aborder%2Dstyle%3A%20inset%3B%0Aline%2Dheight%3A%2018px%3B%0Apadding%3A%205px%205px%3B%0A%7D%0Atable%2C%20table%20th%2C%20table%20td%20%7B%0Aborder%2Dleft%2Dstyle%3A%20none%3B%0Aborder%2Dright%2Dstyle%3A%20none%3B%0A%7D%0Atable%20thead%2C%20table%20tr%2Eeven%20%7B%0Abackground%2Dcolor%3A%20%23f7f7f7%3B%0A%7D%0Ap%20%7B%0Amargin%3A%200%2E5em%200%3B%0A%7D%0Ablockquote%20%7B%0Abackground%2Dcolor%3A%20%23f6f6f6%3B%0Apadding%3A%200%2E25em%200%2E75em%3B%0A%7D%0Ahr%20%7B%0Aborder%2Dstyle%3A%20solid%3B%0Aborder%3A%20none%3B%0Aborder%2Dtop%3A%201px%20solid%20%23777%3B%0Amargin%3A%2028px%200%3B%0A%7D%0Adl%20%7B%0Amargin%2Dleft%3A%200%3B%0A%7D%0Adl%20dd%20%7B%0Amargin%2Dbottom%3A%2013px%3B%0Amargin%2Dleft%3A%2013px%3B%0A%7D%0Adl%20dt%20%7B%0Afont%2Dweight%3A%20bold%3B%0A%7D%0Aul%20%7B%0Amargin%2Dtop%3A%200%3B%0A%7D%0Aul%20li%20%7B%0Alist%2Dstyle%3A%20circle%20outside%3B%0A%7D%0Aul%20ul%20%7B%0Amargin%2Dbottom%3A%200%3B%0A%7D%0Apre%2C%20code%20%7B%0Abackground%2Dcolor%3A%20%23f7f7f7%3B%0Aborder%2Dradius%3A%203px%3B%0Acolor%3A%20%23333%3B%0Awhite%2Dspace%3A%20pre%2Dwrap%3B%20%0A%7D%0Apre%20%7B%0Aborder%2Dradius%3A%203px%3B%0Amargin%3A%205px%200px%2010px%200px%3B%0Apadding%3A%2010px%3B%0A%7D%0Apre%3Anot%28%5Bclass%5D%29%20%7B%0Abackground%2Dcolor%3A%20%23f7f7f7%3B%0A%7D%0Acode%20%7B%0Afont%2Dfamily%3A%20Consolas%2C%20Monaco%2C%20%27Courier%20New%27%2C%20monospace%3B%0Afont%2Dsize%3A%2085%25%3B%0A%7D%0Ap%20%3E%20code%2C%20li%20%3E%20code%20%7B%0Apadding%3A%202px%200px%3B%0A%7D%0Adiv%2Efigure%20%7B%0Atext%2Dalign%3A%20center%3B%0A%7D%0Aimg%20%7B%0Abackground%2Dcolor%3A%20%23FFFFFF%3B%0Apadding%3A%202px%3B%0Aborder%3A%201px%20solid%20%23DDDDDD%3B%0Aborder%2Dradius%3A%203px%3B%0Aborder%3A%201px%20solid%20%23CCCCCC%3B%0Amargin%3A%200%205px%3B%0A%7D%0Ah1%20%7B%0Amargin%2Dtop%3A%200%3B%0Afont%2Dsize%3A%2035px%3B%0Aline%2Dheight%3A%2040px%3B%0A%7D%0Ah2%20%7B%0Aborder%2Dbottom%3A%204px%20solid%20%23f7f7f7%3B%0Apadding%2Dtop%3A%2010px%3B%0Apadding%2Dbottom%3A%202px%3B%0Afont%2Dsize%3A%20145%25%3B%0A%7D%0Ah3%20%7B%0Aborder%2Dbottom%3A%202px%20solid%20%23f7f7f7%3B%0Apadding%2Dtop%3A%2010px%3B%0Afont%2Dsize%3A%20120%25%3B%0A%7D%0Ah4%20%7B%0Aborder%2Dbottom%3A%201px%20solid%20%23f7f7f7%3B%0Amargin%2Dleft%3A%208px%3B%0Afont%2Dsize%3A%20105%25%3B%0A%7D%0Ah5%2C%20h6%20%7B%0Aborder%2Dbottom%3A%201px%20solid%20%23ccc%3B%0Afont%2Dsize%3A%20105%25%3B%0A%7D%0Aa%20%7B%0Acolor%3A%20%230033dd%3B%0Atext%2Ddecoration%3A%20none%3B%0A%7D%0Aa%3Ahover%20%7B%0Acolor%3A%20%236666ff%3B%20%7D%0Aa%3Avisited%20%7B%0Acolor%3A%20%23800080%3B%20%7D%0Aa%3Avisited%3Ahover%20%7B%0Acolor%3A%20%23BB00BB%3B%20%7D%0Aa%5Bhref%5E%3D%22http%3A%22%5D%20%7B%0Atext%2Ddecoration%3A%20underline%3B%20%7D%0Aa%5Bhref%5E%3D%22https%3A%22%5D%20%7B%0Atext%2Ddecoration%3A%20underline%3B%20%7D%0A%0Acode%20%3E%20span%2Ekw%20%7B%20color%3A%20%23555%3B%20font%2Dweight%3A%20bold%3B%20%7D%20%0Acode%20%3E%20span%2Edt%20%7B%20color%3A%20%23902000%3B%20%7D%20%0Acode%20%3E%20span%2Edv%20%7B%20color%3A%20%2340a070%3B%20%7D%20%0Acode%20%3E%20span%2Ebn%20%7B%20color%3A%20%23d14%3B%20%7D%20%0Acode%20%3E%20span%2Efl%20%7B%20color%3A%20%23d14%3B%20%7D%20%0Acode%20%3E%20span%2Ech%20%7B%20color%3A%20%23d14%3B%20%7D%20%0Acode%20%3E%20span%2Est%20%7B%20color%3A%20%23d14%3B%20%7D%20%0Acode%20%3E%20span%2Eco%20%7B%20color%3A%20%23888888%3B%20font%2Dstyle%3A%20italic%3B%20%7D%20%0Acode%20%3E%20span%2Eot%20%7B%20color%3A%20%23007020%3B%20%7D%20%0Acode%20%3E%20span%2Eal%20%7B%20color%3A%20%23ff0000%3B%20font%2Dweight%3A%20bold%3B%20%7D%20%0Acode%20%3E%20span%2Efu%20%7B%20color%3A%20%23900%3B%20font%2Dweight%3A%20bold%3B%20%7D%20%20code%20%3E%20span%2Eer%20%7B%20color%3A%20%23a61717%3B%20background%2Dcolor%3A%20%23e3d2d2%3B%20%7D%20%0A" rel="stylesheet" type="text/css" />
 
 </head>
 
@@ -68,11 +317,11 @@ code > span.in { color: #60a0b0; font-weight: bold; font-style: italic; } /* Inf
 
 
 <h1 class="title toc-ignore">Using the LifeInsuranceContracts Package</h1>
-<h4 class="author"><em>Reinhold Kainhofer</em></h4>
+<h4 class="author">Reinhold Kainhofer</h4>
 <address class="author_afil">
-Open Tools<br><a class="author_email" href="mailto:#"><a href="mailto:reinhold@kainhofer.com">reinhold@kainhofer.com</a></a>
+Open Tools<br><a class="author_email" href="mailto:#"><a href="mailto:reinhold@kainhofer.com" class="email">reinhold@kainhofer.com</a></a>
 </address>
-<h4 class="date"><em>2016-09-06</em></h4>
+<h4 class="date">2020-08-12</h4>
 
 
 <div id="TOC">
@@ -84,89 +333,111 @@ Open Tools<br><a class="author_email" href="mailto:#"><a href="mailto:reinhold@k
 <p>The LifeInsuranceContracts package provides a full-featured framework to model classical life insurance contracts (non-unit linked). Mathematically, a general life insurance contracts can be defined using death and survival (and disability) benefit vectors to define the cash flows and calculate all premiums and reserves recursively. This powerful approach is taken by the LifeInsuranceContracts package to provide the most flexible contract modelling framework in R.</p>
 <div id="contracttariff-parameter-structure-an-default-values" class="section level2">
 <h2>Contract/Tariff parameter structure an default values</h2>
-<div class="sourceCode"><pre class="sourceCode r"><code class="sourceCode r"><span class="kw">str</span>(InsuranceContract.ParameterDefaults)
-<span class="co">#&gt; List of 7</span>
-<span class="co">#&gt;  $ ContractData       :List of 15</span>
-<span class="co">#&gt;   ..$ sumInsured            : num 1e+05</span>
-<span class="co">#&gt;   ..$ YOB                   : num 1975</span>
-<span class="co">#&gt;   ..$ age                   : num 40</span>
-<span class="co">#&gt;   ..$ policyPeriod          : num 25</span>
-<span class="co">#&gt;   ..$ premiumPeriod         : num 25</span>
-<span class="co">#&gt;   ..$ deferralPeriod        : num 0</span>
-<span class="co">#&gt;   ..$ guaranteedPeriod      : num 0</span>
-<span class="co">#&gt;   ..$ contractClosing       : Date[1:1], format: &quot;2016-09-06&quot;</span>
-<span class="co">#&gt;   ..$ premiumPayments       : chr &quot;in advance&quot;</span>
-<span class="co">#&gt;   ..$ benefitPayments       : chr &quot;in advance&quot;</span>
-<span class="co">#&gt;   ..$ premiumFrequency      : num 1</span>
-<span class="co">#&gt;   ..$ benefitFrequency      : num 1</span>
-<span class="co">#&gt;   ..$ widowProportion       : num 0</span>
-<span class="co">#&gt;   ..$ deathBenefitProportion: num 1</span>
-<span class="co">#&gt;   ..$ premiumRefund         : num 0</span>
-<span class="co">#&gt;  $ ContractState      :List of 3</span>
-<span class="co">#&gt;   ..$ premiumWaiver   : logi FALSE</span>
-<span class="co">#&gt;   ..$ surrenderPenalty: logi TRUE</span>
-<span class="co">#&gt;   ..$ alphaRefunded   : logi FALSE</span>
-<span class="co">#&gt;  $ ActuarialBases     :List of 8</span>
-<span class="co">#&gt;   ..$ mortalityTable           : NULL</span>
-<span class="co">#&gt;   ..$ invalidityTable          : NULL</span>
-<span class="co">#&gt;   ..$ i                        : num 0</span>
-<span class="co">#&gt;   ..$ balanceSheetDate         : Date[1:1], format: &quot;1900-12-31&quot;</span>
-<span class="co">#&gt;   ..$ balanceSheetMethod       : chr &quot;30/360&quot;</span>
-<span class="co">#&gt;   ..$ surrenderValueCalculation: NULL</span>
-<span class="co">#&gt;   ..$ premiumFrequencyOrder    : num 0</span>
-<span class="co">#&gt;   ..$ benefitFrequencyOrder    : num 0</span>
-<span class="co">#&gt;  $ Costs              : num [1:5, 1:3, 1:4] 0 0 0 0 0 0 0 0 0 0 ...</span>
-<span class="co">#&gt;   ..- attr(*, &quot;dimnames&quot;)=List of 3</span>
-<span class="co">#&gt;   .. ..$ : chr [1:5] &quot;alpha&quot; &quot;Zillmer&quot; &quot;beta&quot; &quot;gamma&quot; ...</span>
-<span class="co">#&gt;   .. ..$ : chr [1:3] &quot;SumInsured&quot; &quot;SumPremiums&quot; &quot;GrossPremium&quot;</span>
-<span class="co">#&gt;   .. ..$ : chr [1:4] &quot;once&quot; &quot;PremiumPeriod&quot; &quot;PremiumFree&quot; &quot;PolicyPeriod&quot;</span>
-<span class="co">#&gt;  $ Loadings           :List of 12</span>
-<span class="co">#&gt;   ..$ ongoingAlphaGrossPremium: num 0</span>
-<span class="co">#&gt;   ..$ tax                     : num 0.04</span>
-<span class="co">#&gt;   ..$ unitcosts               : num 0</span>
-<span class="co">#&gt;   ..$ security                : num 0</span>
-<span class="co">#&gt;   ..$ noMedicalExam           : num 0</span>
-<span class="co">#&gt;   ..$ noMedicalExamRelative   : num 0</span>
-<span class="co">#&gt;   ..$ sumRebate               : num 0</span>
-<span class="co">#&gt;   ..$ premiumRebate           : num 0</span>
-<span class="co">#&gt;   ..$ partnerRebate           : num 0</span>
-<span class="co">#&gt;   ..$ extraChargeGrossPremium : num 0</span>
-<span class="co">#&gt;   ..$ benefitFrequencyLoading :List of 4</span>
-<span class="co">#&gt;   .. ..$ 1 : num 0</span>
-<span class="co">#&gt;   .. ..$ 2 : num 0</span>
-<span class="co">#&gt;   .. ..$ 4 : num 0</span>
-<span class="co">#&gt;   .. ..$ 12: num 0</span>
-<span class="co">#&gt;   ..$ premiumFrequencyLoading :List of 4</span>
-<span class="co">#&gt;   .. ..$ 1 : num 0</span>
-<span class="co">#&gt;   .. ..$ 2 : num 0</span>
-<span class="co">#&gt;   .. ..$ 4 : num 0</span>
-<span class="co">#&gt;   .. ..$ 12: num 0</span>
-<span class="co">#&gt;  $ Features           :List of 2</span>
-<span class="co">#&gt;   ..$ betaGammaInZillmer: logi FALSE</span>
-<span class="co">#&gt;   ..$ alphaRefundLinear : logi TRUE</span>
-<span class="co">#&gt;  $ ProfitParticipation:List of 10</span>
-<span class="co">#&gt;   ..$ advanceProfitParticipation            : num 0</span>
-<span class="co">#&gt;   ..$ advanceProfitParticipationInclUnitCost: num 0</span>
-<span class="co">#&gt;   ..$ guaranteedInterest                    : num 0</span>
-<span class="co">#&gt;   ..$ interestBonusRate                     : num 0</span>
-<span class="co">#&gt;   ..$ totalInterest                         : num 0</span>
-<span class="co">#&gt;   ..$ mortalityBonusRate                    : num 0</span>
-<span class="co">#&gt;   ..$ costBonusRate                         : num 0</span>
-<span class="co">#&gt;   ..$ terminalBonusRate                     : num 0</span>
-<span class="co">#&gt;   ..$ terminalBonusQuote                    : num 0</span>
-<span class="co">#&gt;   ..$ profitParticipationScheme             : NULL</span></code></pre></div>
-<div class="sourceCode"><pre class="sourceCode r"><code class="sourceCode r">
-<span class="co">#pandoc.listRK(InsuranceContract.ParameterDefaults)</span></code></pre></div>
+<div class="sourceCode" id="cb1"><pre class="sourceCode r"><code class="sourceCode r"><span id="cb1-1"><a href="#cb1-1"></a><span class="kw">str</span>(InsuranceContract.ParameterDefaults)</span>
+<span id="cb1-2"><a href="#cb1-2"></a><span class="co">#&gt; List of 8</span></span>
+<span id="cb1-3"><a href="#cb1-3"></a><span class="co">#&gt;  $ ContractData       :List of 23</span></span>
+<span id="cb1-4"><a href="#cb1-4"></a><span class="co">#&gt;   ..$ id                    : chr &quot;Hauptvertrag&quot;</span></span>
+<span id="cb1-5"><a href="#cb1-5"></a><span class="co">#&gt;   ..$ sumInsured            : num 1e+05</span></span>
+<span id="cb1-6"><a href="#cb1-6"></a><span class="co">#&gt;   ..$ YOB                   : NULL</span></span>
+<span id="cb1-7"><a href="#cb1-7"></a><span class="co">#&gt;   ..$ age                   : NULL</span></span>
+<span id="cb1-8"><a href="#cb1-8"></a><span class="co">#&gt;   ..$ technicalAge          : NULL</span></span>
+<span id="cb1-9"><a href="#cb1-9"></a><span class="co">#&gt;   ..$ ageDifferences        : NULL</span></span>
+<span id="cb1-10"><a href="#cb1-10"></a><span class="co">#&gt;   ..$ sex                   : chr &quot;unisex&quot;</span></span>
+<span id="cb1-11"><a href="#cb1-11"></a><span class="co">#&gt;   ..$ policyPeriod          : num 25</span></span>
+<span id="cb1-12"><a href="#cb1-12"></a><span class="co">#&gt;   ..$ premiumPeriod         : NULL</span></span>
+<span id="cb1-13"><a href="#cb1-13"></a><span class="co">#&gt;   ..$ deferralPeriod        : num 0</span></span>
+<span id="cb1-14"><a href="#cb1-14"></a><span class="co">#&gt;   ..$ guaranteedPeriod      : num 0</span></span>
+<span id="cb1-15"><a href="#cb1-15"></a><span class="co">#&gt;   ..$ contractClosing       : NULL</span></span>
+<span id="cb1-16"><a href="#cb1-16"></a><span class="co">#&gt;   ..$ blockStart            : num 0</span></span>
+<span id="cb1-17"><a href="#cb1-17"></a><span class="co">#&gt;   ..$ premiumPayments       : chr &quot;in advance&quot;</span></span>
+<span id="cb1-18"><a href="#cb1-18"></a><span class="co">#&gt;   ..$ benefitPayments       : chr &quot;in advance&quot;</span></span>
+<span id="cb1-19"><a href="#cb1-19"></a><span class="co">#&gt;   ..$ premiumFrequency      : num 1</span></span>
+<span id="cb1-20"><a href="#cb1-20"></a><span class="co">#&gt;   ..$ benefitFrequency      : num 1</span></span>
+<span id="cb1-21"><a href="#cb1-21"></a><span class="co">#&gt;   ..$ widowProportion       : num 0</span></span>
+<span id="cb1-22"><a href="#cb1-22"></a><span class="co">#&gt;   ..$ deathBenefitProportion: num 1</span></span>
+<span id="cb1-23"><a href="#cb1-23"></a><span class="co">#&gt;   ..$ premiumRefund         : num 0</span></span>
+<span id="cb1-24"><a href="#cb1-24"></a><span class="co">#&gt;   ..$ premiumIncrease       : num 1</span></span>
+<span id="cb1-25"><a href="#cb1-25"></a><span class="co">#&gt;   ..$ annuityIncrease       : num 1</span></span>
+<span id="cb1-26"><a href="#cb1-26"></a><span class="co">#&gt;   ..$ deathBenefit          : num 1</span></span>
+<span id="cb1-27"><a href="#cb1-27"></a><span class="co">#&gt;  $ ContractState      :List of 3</span></span>
+<span id="cb1-28"><a href="#cb1-28"></a><span class="co">#&gt;   ..$ premiumWaiver   : logi FALSE</span></span>
+<span id="cb1-29"><a href="#cb1-29"></a><span class="co">#&gt;   ..$ surrenderPenalty: logi TRUE</span></span>
+<span id="cb1-30"><a href="#cb1-30"></a><span class="co">#&gt;   ..$ alphaRefunded   : logi FALSE</span></span>
+<span id="cb1-31"><a href="#cb1-31"></a><span class="co">#&gt;  $ ActuarialBases     :List of 9</span></span>
+<span id="cb1-32"><a href="#cb1-32"></a><span class="co">#&gt;   ..$ mortalityTable           : NULL</span></span>
+<span id="cb1-33"><a href="#cb1-33"></a><span class="co">#&gt;   ..$ invalidityTable          : NULL</span></span>
+<span id="cb1-34"><a href="#cb1-34"></a><span class="co">#&gt;   ..$ invalidityEndsContract   : logi TRUE</span></span>
+<span id="cb1-35"><a href="#cb1-35"></a><span class="co">#&gt;   ..$ i                        : num 0</span></span>
+<span id="cb1-36"><a href="#cb1-36"></a><span class="co">#&gt;   ..$ balanceSheetDate         : Date[1:1], format: &quot;1900-12-31&quot;</span></span>
+<span id="cb1-37"><a href="#cb1-37"></a><span class="co">#&gt;   ..$ balanceSheetMethod       : chr &quot;30/360&quot;</span></span>
+<span id="cb1-38"><a href="#cb1-38"></a><span class="co">#&gt;   ..$ surrenderValueCalculation: NULL</span></span>
+<span id="cb1-39"><a href="#cb1-39"></a><span class="co">#&gt;   ..$ premiumFrequencyOrder    : num 0</span></span>
+<span id="cb1-40"><a href="#cb1-40"></a><span class="co">#&gt;   ..$ benefitFrequencyOrder    : num 0</span></span>
+<span id="cb1-41"><a href="#cb1-41"></a><span class="co">#&gt;  $ Costs              : num [1:6, 1:6, 1:4] 0 0 0 0 0 0 0 0 0 0 ...</span></span>
+<span id="cb1-42"><a href="#cb1-42"></a><span class="co">#&gt;   ..- attr(*, &quot;dimnames&quot;)=List of 3</span></span>
+<span id="cb1-43"><a href="#cb1-43"></a><span class="co">#&gt;   .. ..$ type     : chr [1:6] &quot;alpha&quot; &quot;Zillmer&quot; &quot;beta&quot; &quot;gamma&quot; ...</span></span>
+<span id="cb1-44"><a href="#cb1-44"></a><span class="co">#&gt;   .. ..$ basis    : chr [1:6] &quot;SumInsured&quot; &quot;SumPremiums&quot; &quot;GrossPremium&quot; &quot;NetPremium&quot; ...</span></span>
+<span id="cb1-45"><a href="#cb1-45"></a><span class="co">#&gt;   .. ..$ frequency: chr [1:4] &quot;once&quot; &quot;PremiumPeriod&quot; &quot;PremiumFree&quot; &quot;PolicyPeriod&quot;</span></span>
+<span id="cb1-46"><a href="#cb1-46"></a><span class="co">#&gt;  $ Loadings           :List of 13</span></span>
+<span id="cb1-47"><a href="#cb1-47"></a><span class="co">#&gt;   ..$ ongoingAlphaGrossPremium: num 0</span></span>
+<span id="cb1-48"><a href="#cb1-48"></a><span class="co">#&gt;   ..$ tax                     : num 0.04</span></span>
+<span id="cb1-49"><a href="#cb1-49"></a><span class="co">#&gt;   ..$ unitcosts               : num 0</span></span>
+<span id="cb1-50"><a href="#cb1-50"></a><span class="co">#&gt;   ..$ security                : num 0</span></span>
+<span id="cb1-51"><a href="#cb1-51"></a><span class="co">#&gt;   ..$ noMedicalExam           : num 0</span></span>
+<span id="cb1-52"><a href="#cb1-52"></a><span class="co">#&gt;   ..$ noMedicalExamRelative   : num 0</span></span>
+<span id="cb1-53"><a href="#cb1-53"></a><span class="co">#&gt;   ..$ sumRebate               : num 0</span></span>
+<span id="cb1-54"><a href="#cb1-54"></a><span class="co">#&gt;   ..$ extraRebate             : num 0</span></span>
+<span id="cb1-55"><a href="#cb1-55"></a><span class="co">#&gt;   ..$ premiumRebate           : num 0</span></span>
+<span id="cb1-56"><a href="#cb1-56"></a><span class="co">#&gt;   ..$ partnerRebate           : num 0</span></span>
+<span id="cb1-57"><a href="#cb1-57"></a><span class="co">#&gt;   ..$ extraChargeGrossPremium : num 0</span></span>
+<span id="cb1-58"><a href="#cb1-58"></a><span class="co">#&gt;   ..$ benefitFrequencyLoading :List of 4</span></span>
+<span id="cb1-59"><a href="#cb1-59"></a><span class="co">#&gt;   .. ..$ 1 : num 0</span></span>
+<span id="cb1-60"><a href="#cb1-60"></a><span class="co">#&gt;   .. ..$ 2 : num 0</span></span>
+<span id="cb1-61"><a href="#cb1-61"></a><span class="co">#&gt;   .. ..$ 4 : num 0</span></span>
+<span id="cb1-62"><a href="#cb1-62"></a><span class="co">#&gt;   .. ..$ 12: num 0</span></span>
+<span id="cb1-63"><a href="#cb1-63"></a><span class="co">#&gt;   ..$ premiumFrequencyLoading :List of 4</span></span>
+<span id="cb1-64"><a href="#cb1-64"></a><span class="co">#&gt;   .. ..$ 1 : num 0</span></span>
+<span id="cb1-65"><a href="#cb1-65"></a><span class="co">#&gt;   .. ..$ 2 : num 0</span></span>
+<span id="cb1-66"><a href="#cb1-66"></a><span class="co">#&gt;   .. ..$ 4 : num 0</span></span>
+<span id="cb1-67"><a href="#cb1-67"></a><span class="co">#&gt;   .. ..$ 12: num 0</span></span>
+<span id="cb1-68"><a href="#cb1-68"></a><span class="co">#&gt;  $ Features           :List of 2</span></span>
+<span id="cb1-69"><a href="#cb1-69"></a><span class="co">#&gt;   ..$ betaGammaInZillmer: logi FALSE</span></span>
+<span id="cb1-70"><a href="#cb1-70"></a><span class="co">#&gt;   ..$ alphaRefundLinear : logi TRUE</span></span>
+<span id="cb1-71"><a href="#cb1-71"></a><span class="co">#&gt;  $ ProfitParticipation:List of 16</span></span>
+<span id="cb1-72"><a href="#cb1-72"></a><span class="co">#&gt;   ..$ advanceProfitParticipation            : num 0</span></span>
+<span id="cb1-73"><a href="#cb1-73"></a><span class="co">#&gt;   ..$ advanceProfitParticipationInclUnitCost: num 0</span></span>
+<span id="cb1-74"><a href="#cb1-74"></a><span class="co">#&gt;   ..$ waitingPeriod                         : NULL</span></span>
+<span id="cb1-75"><a href="#cb1-75"></a><span class="co">#&gt;   ..$ guaranteedInterest                    : NULL</span></span>
+<span id="cb1-76"><a href="#cb1-76"></a><span class="co">#&gt;   ..$ interestProfitRate                    : NULL</span></span>
+<span id="cb1-77"><a href="#cb1-77"></a><span class="co">#&gt;   ..$ totalInterest                         : NULL</span></span>
+<span id="cb1-78"><a href="#cb1-78"></a><span class="co">#&gt;   ..$ mortalityProfitRate                   : NULL</span></span>
+<span id="cb1-79"><a href="#cb1-79"></a><span class="co">#&gt;   ..$ expenseProfitRate                     : NULL</span></span>
+<span id="cb1-80"><a href="#cb1-80"></a><span class="co">#&gt;   ..$ sumProfitRate                         : NULL</span></span>
+<span id="cb1-81"><a href="#cb1-81"></a><span class="co">#&gt;   ..$ terminalBonusRate                     : NULL</span></span>
+<span id="cb1-82"><a href="#cb1-82"></a><span class="co">#&gt;   ..$ terminalBonusFundRate                 : NULL</span></span>
+<span id="cb1-83"><a href="#cb1-83"></a><span class="co">#&gt;   ..$ profitParticipationScheme             : NULL</span></span>
+<span id="cb1-84"><a href="#cb1-84"></a><span class="co">#&gt;   ..$ profitComponents                      : chr [1:5] &quot;interest&quot; &quot;risk&quot; &quot;expense&quot; &quot;sum&quot; ...</span></span>
+<span id="cb1-85"><a href="#cb1-85"></a><span class="co">#&gt;   ..$ profitClass                           : NULL</span></span>
+<span id="cb1-86"><a href="#cb1-86"></a><span class="co">#&gt;   ..$ profitRates                           : NULL</span></span>
+<span id="cb1-87"><a href="#cb1-87"></a><span class="co">#&gt;   ..$ scenarios                             : list()</span></span>
+<span id="cb1-88"><a href="#cb1-88"></a><span class="co">#&gt;  $ Hooks              :List of 2</span></span>
+<span id="cb1-89"><a href="#cb1-89"></a><span class="co">#&gt;   ..$ adjustCashFlows     : NULL</span></span>
+<span id="cb1-90"><a href="#cb1-90"></a><span class="co">#&gt;   ..$ adjustCashFlowsCosts: NULL</span></span></code></pre></div>
+<div class="sourceCode" id="cb2"><pre class="sourceCode r"><code class="sourceCode r"><span id="cb2-1"><a href="#cb2-1"></a></span>
+<span id="cb2-2"><a href="#cb2-2"></a><span class="co">#pandoc.listRK(InsuranceContract.ParameterDefaults)</span></span></code></pre></div>
 </div>
 
 
 
+<!-- code folding -->
+
+
 <!-- dynamically load mathjax for compatibility with self-contained -->
 <script>
   (function () {
     var script = document.createElement("script");
     script.type = "text/javascript";
-    script.src  = "https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML";
+    script.src  = "https://mathjax.rstudio.com/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML";
     document.getElementsByTagName("head")[0].appendChild(script);
   })();
 </script>