please explain why each of these libraries are required.