adds more structure
some more clean up