Block can be NULL