fix variable conflict name
add touch compatibility