restructure files to split publicly distributed and implementation
It seems that good practice for C++ applications is to only include *public* headers in "./include" folder and keep source files and *private* headers and implementation source files in "./src".