two hardest methods remaining