Use old compilation system.
Use an enum rather than a string for the function.
Resolving conflict with Francois
Updated authors.