Moving to class based structure. Also allows for more flexible extension names