Major update: Change the way metaclass works