cleaned and restructured