now using functions for GC/RC
cleanup