prevent reinstantiate function template. fix cond of builtin classes. rewrite test macros
reduce installing packages for circleci