Functional Program

Needs progress bar and design work. Other fixes and such as well. Need
new layout.