replace weaklists with normal lists and updated destructors