ctdl_getline() is a mess. continued cleaning it up