add custom reduce func