need to reorganize the libraries to remove circular dependency
build system reworked to have one library