add block as optional