Building A Functional Program