restructure
minimal changes