cleanup
add caching for variable highlighting