Why would you use class component over function components (removing hooks from the question)? Name three lifecycle methods and their purposes. What is the purpose of a custom hook? Why is it important to test our apps?