Why do we need two implementations of this method?