complete implementation of DoubleKeyMap