original source from ibm developerworks 
[link](http://www.ibm.com/developerworks/java/library/j-javaactors/)