HUMP library (yes its called that)