wrote plugin architecture for dimensionality reduction