abstract detail view