needed libraries