extracted dynamics as a base class