methods 2, 3, and 5