making _do_init a private method