finished permission tools implementation