revamp cmake

add test coverage
add git tagging