I can't see how switching to metaclass improves anything. Please revert such changes, they only make it harder to
evaluate the essence of the pull request.