Overhaul
Reorg, more tests, coverage
gitignore update for coverage