redid button infrastructure, added adding/removing of tabs, dirty workaround for client sizing