Split out public and private function defs
Better documentation
Added README