I am not that good with metaclasses. Why is this necessary?