lecture 3 : polymorphism and GO architecture