Completely rewrote