First Functional version

First Functional version