combines three basic models