make group editing dialog a transactional child of its parent
refactor dialog code