rewrote with same() method