http://griffsgraphs.files.wordpress.com/2012/07/programming-paradigms_label2.png