abstracting the detail screen to different directives