redoes structure, adds more stuff