Much better OO way of dealing with multiple packages