Add support for default values in with_init