I don't get why this method has two arguments but `previous` only has one. Isn't this argument excessive?