changes protecting some fields and managing the _fetchedResultsController
check for delegate before init fetchedResultsController