fix bugs
merge with zac