assume identifiers ending in `$` are cached selectors