added a custom reuction function