lib for offline use