What about with using interface based on Role, now we only use a trait that handle same method. so tricky when we want to combine multiple role.