require doctrine