Modified, but still some problem left