Fiddled with some comments, added call_once to init(), added init_impl() that allows use of init() to be used to initialize an object exactly once.