add menu callbacks
fix the button order
add hardware publishing