     
     func setupTableView(){
         tableViewDataSource = ComposerTableViewDataSource(asDataSourceForTableView: tableView)
-        tableViewDelegate = ComposerTableViewDelegate(asDelegateForTableView: tableView)
+        tableViewDelegate = ComposerTableViewDelegate(asDelegateForTableView: tableView, withDataSource: tableViewDataSource)
         let textModuleTableViewCellNib = UINib(nibName: "TextModuleTableViewCell", bundle: nil)
         tableView.registerNib(textModuleTableViewCellNib, forCellReuseIdentifier: Constants.Composer.textModuleCellIdentifier)
         let imageModuleTableViewCellNib = UINib(nibName: "ImageModuleTableViewCell", bundle: nil)

extension UIImage{
    
    func resize(toSize size: CGSize, completionHandler: (resizedImage: UIImage, data: NSData) ->() ){
        dispatch_async(dispatch_get_global_queue(QOS_CLASS_USER_INITIATED, 0), { () -> Void in
            UIGraphicsBeginImageContextWithOptions(size, false, 1.0)
            self.drawInRect(CGRectMake(0, 0, size.width, size.height))
            let resizedImage:UIImage = UIGraphicsGetImageFromCurrentImageContext()
            UIGraphicsEndImageContext()
            let imageData = UIImagePNGRepresentation(resizedImage)
            dispatch_async(dispatch_get_main_queue(), { () -> Void in
                completionHandler(resizedImage: resizedImage, data: imageData)
            })

    }
}

class ComposerViewController: UIViewController, ModuleSelectorViewControllerDelegate, UITextViewDelegate{

    @IBOutlet var tableView: UITableView!
    
    var tableViewDataSource: ComposerTableViewDataSource!
    var tableViewDelegate: ComposerTableViewDelegate!

    override func viewDidLoad() {
        super.viewDidLoad()
