project structure rewrite
lib version 2.0