complete refactor library into seperate solution with 3 projects: static library build, dynamic library build and unit tests.