refactoring and redesign devise actions