I left some comments on GitHub. Looks good to me. I think it is the right approach. One remaining question for me is, why we cannot build annotations into this as well now?