!Merge code with Justin, fix some force close bug