defer do main