more implementations of the model