ENYO-690: Converting to a more functional style. Adding initial documentation.

Enyo-DCO-1.1-Signed-off-by: Aaron Tam <aaron.tam@lge.com>