Completely rewrote b