reduce for new approach