add delete functions
add cotl_new.cpp
let gc optional