Moved delegates to separate class for easier tracking