some changes, might cause error