Why do you have both a `CMakeLists.txt` and a `Makefile`? Which one is the preferred one? Considering that the `Makefile` is being overriden by cmake, can it be removed to avoid ambiguity?