renamed program-arguments to functional-arguments, as these are a pain in the ass and would be used only by functional zealots