         messages.add new PlainMessageView(message: address, className: 'green-message')
         messages.add new PlainMessageView(message: output, className: 'green-message')
 
-    call: (@myContract, @functionName) ->
-        result = @myContract[Object.keys(@functionName)[0]]()
-        @showOutput @myContract.address, result
+    valuesToArray: (@arguments, callback) ->
+        that = this
+        keys = Object.keys(@arguments)
+        args = new Array()
+        @asyncLoop keys.length, ((cycle) ->
+            args.push(that.arguments[keys[cycle.iteration()]].value)
+            cycle.next()
+        ), ->
+            console.log args
+            callback(null, args)
+
+
+    call: (@myContract, @functionName, @arguments) ->
+        that = this
+        console.log @myContract
+        console.log @functionName
+        console.log @arguments
+        @valuesToArray @arguments, (error, args) ->
+            if !error
+                if args[0].length > 0
+                    result = that.myContract[that.functionName].apply(this, args)
+                else
+                    result = that.myContract[that.functionName]()
+                that.showOutput that.myContract.address, result
 
     toggle: ->
         if @modalPanel.isVisible()

                                    if !error
                                        self.state.childFunctions.push(childFunctions)
                                        self.forceUpdate()
                            _handleChange: (event) ->
                                this.setState { value: event.target.value }
                            _handleSubmit: ->
                                console.log 'To be Handled call submit'
                            render: ->
                                self = this
                                React.createElement 'div', { htmlFor: 'test' }, this.state.childFunctions.map((childFunction, i) ->
                                    React.createElement 'form', { onSubmit: this._handleSubmit, key: i },
                                        React.createElement 'input', { type: 'button', readOnly: 'true', value: childFunction[0], ref: childFunction[0] }, childFunction[1].map((childInput, j) ->
                                            React.createElement 'input', { tye: 'text', value: childInput[0] + ' ' + childInput[1] }
                                        )
                                )
                        )


            callback(e, null)

    # our asyncLoop
    asyncLoop: (iterations, func, callback) ->
        index = 0
        done = false
