Model implementation.