refactoring discussions with cancan