add permission
add some examples based on my experience