fix seg bugs