updated feature extraction