updated the library with my latest changes from my upstream project