Adding initial files.

Lots of clean up to do re: documentation and exception handling.