add spread functionality