Update with function prototypes and starting function definitioins with descriptions.