Some other top leve CMakeLists is needed.
Renaming main file.
Refactored directory structure and added some unit testing.