Properly wrapped headers (to avoid multiple-inclusion issues). Split out utility functions into separate module (utilites) to illustrate how to use the implicit compliation rule in the make file.
Wrapped main header, factored out utilities.
Merge pull request #2 from nullstream/master

Factoring the factors. Fixes to my sloppy code :)