add gradient spread method