rename to cpp
fix build
rename to cpp and header fix
fix headers and wrap static functions in anonymous namespace
rename to hpp
get rid of C linkage
let headers determine linkage