add the ability to pass blocks to delegated methods