allow enableling/disabeling features while caching them + prevent errors on frozen objects

same as the other but for master branch

@jamesarosen