Add cache and serialize/deserialize to FeatureExtractor