functional code first commit