improved package hierarchy