Do metaclasses with six
Python 3 compatibility fixes with six
Use str.format() instead of % formatting