Need to think about my metaclassing here. Is it really necessary?