Examples from howdoidothatinjava.blogspot.com