increasing speed and adding offline support
increasing speed and adding offline support (2)