improved ISP lib