New models

Models done
Can this routine be taken out of master and put on some other branch?  It confuses me because it uses `assign_after` which I don't think we use anymore, `prototype_task` etc which are all not right.