head DSL can accept a block