accept on_init parameters
more cleanup