Refactored the CandidateViewSelector to be more generic.
Unfortunately at the cost of instroducing loads of warnings because not all references the a new generic type are updated yet.