resolve functions instead of passing them to the constructor; register field types at time of model init rather than on load of namespace