I'm creating an app that has four or five table views that all get their data from Core Data. They are very similar, so I would like to only use one view controller to manage these views, and then use if/else statements to differentiate them. For example, one table has a UISearchBar, the others don't. Another table has different cell prototypes, which are easy to use too. Still another table has some other things that make it different from the others. Of course, the NSFetchRequests are different for all 4/5 tables. It would be a lot easier to put the code for all these tables in one, since they are all presented and popped the same way. I've considered creating a super class, and then subclasses for each table, but that's still some extra work. What would be my best course of action in this situation?