broke out the main page loop so that it can be called recursively
broke out the Column and Row case classes and made companion objects so that I can have an optional list of Row as a member of Column