Rewrote the library and fixed the derivative word bug