major changes for cleaner structure