methods 1-3 work