refactor thingedit views with tabs and re-use across sub-classes