Add separated implementation of ExperimentModel

Fixes an item in #50.