modified the mian function