Genetic stuff, merging with other gui work, final refactoring