cleanup, TODO: model clone method has to make deep clones!!! And you will have to clone every model and cannot use twice!!!!