using subs instead of adds