refactor: detail and list controller in its own 'class' and directory