using templated block operation