Updated core types to support better tracking

View.cache separated from filtering, only cache and mutable use weak
referencing