Better delegate macro (using splats)