[private] unify var names, always return a cached instance
[private] added tests for private