fix while(true)
add dispose