Switch to abstract class for permissions handler