added experiment class for external_data, and viapoint