add TODO
add unit tests
add cmake infrastructure