nice trick `first_or_initialize` with a block