Button Update [STABLE]

This was an attempt at getting callback methods established in the
buttons. This isn't going to work at all the way I had it set up. It
DOES set callback methods and can fire with given args, however it does
not take into consideration local/global variables that are given to the
buttons from the classes they come from.