make rexreader disposable and add layer property caching