fully refact the project, and CommonDevLib is ready