Functional Program class