ex2 combined 1,2 and 3 squashed commit