clean up and improve naming conventions
fix bug when a button is initially pressed
add set_parent_node for button_alert
add module where all functors are defined