use ABCs to make basefields uninstantiatable
keep the source dict on the namespace object
add barebones intfield class and validation of fields