minor cleanups
don't use cl's first/second/third functions
more cleanups