added some more structure