add more permission control