DRY: refactoring controllers, to generic controller adding simplicity