Custom Classes, Methods, Objects, Constructors, Complex Branching, Dynamically-Created Content, loops