Completely Functional Algorithm/Needs Design