implementation of Sum.