why does the button need to know anything about it's index?  Index should be handled by the Window class