closure and singletons and private methods