separating withdets into buttons and panels
widget split into panel form & button
new refactoring of code