I have been looking through the other questions on the site and have found this post.
Ben Voigts answer is very useful and I believe I have it working in my system.
The issue I have is that in some cases I will need a value to be returned from the method invocation.
I was going to just leave a comment on that post but my rep isnt high enough to leave comments.
Hopefully either Ben will see this post or someone else will be able to extend his answer to include how to return a value.
Please let me know if there is any other information you require.
Kind Regards
Ash