Moved to a class hierarchy; implemented a basic v-layout