Make it protected since it needs to be extended and add factory method with a BiFunction as an alternative.