added cleanup call: close highlighter and stop observers