A new charging function,
has been developed to replace the more limited legacy function
This new function uses chargeengines,
an open-ended options class, to define the charging method.
Charge engines can be configured as required and new charge engines can
be developed independently. Charge engines have been written for every
supported charging method, as well as for the new method