add modify function
add query function