add menu
Move methods to private where possible
move tab_label to its own file
minor cleanup

re-arrange method definitions, add missing includes
add saving mechanism