Me and Trinick were talking about this a while ago, it seems that simObjects and simSets won't allow you to associate functions with them. The weird part is that doing echo(isFunction(simObject,funcName)); returns true, however when you try calling them, it doesn't work.
On the other hand, you can do everything you posted in your original post, with Script Objects/Script Groups.