no need for unpack_formatters helper, less shared_ptr use