Added source files.

Added implementation files, header files, and templates.