passing block & procs