Not currently possible to pass a dynamic length array in/out of a function. See over here for a similar question with before/after code. https://ethereum.stackexchange.com/questions/13666/returning-dyanamic-array-from-function/13670#13670 The gist is we need to think in fixed sized chunks. Hope it helps. **Re: Your updated code.** All in all, a pretty good interpretation of the approach I suggested. Your code is compiling in Browser Solidity. There is a warning near line 177. You use `this.text()` where `text` would have the same meaning. Point is it does compile and it *should* deploy. In the picture above, `gas 0` suggests a failure to compile. I think you might find Browser Solidity a better tool for working out the contract itself. Much faster feedback. If something goes haywire in deployment, that's a separate issue. Mist isn't my tool of choice for deploying contracts. What I can say is there should be a gas estimate (not 0) if the contract compiles (should). Also, possibility something like this glitch is in the way: https://ethereum.stackexchange.com/questions/11912/unable-to-define-greetercontract-in-the-greeter-tutorial-breaking-change-in-sol