add 'over'
reimplementation of simple doreduce form