*WIP* Register Click

Hi all, I'm pushing this up while I'm still in a very early stage. I'm getting stuck on passing optional blocks via the ampersand `&block` syntax. 

I keep getting wrong number of argument errors and am now thoroughly lost :frowning:. I may just need a tutorial on passing and using option args . . . more comments in line.
The original is looking for 2 arguments, the object and a Proc. But we are passing a block and no proc, so there are too few arguments. In your change, you are capturing the block and changing it back into a Proc.