Imperative to Functional Programming