use asynctask instead of thread