docs: def validate_fields(self, **kwargs):
          """ ensures that all incoming fields are the types that were specified """
          for field in self.fields:
              value = kwargs[field]
              required_type = self.fields[field]
              if type(value) != required_type:
                  raise TypeError('{}.{} needs to be a {}, recieved: {}({})'.format(
                      self.name,
                      field,
                      required_type.__name__,
                      type(value).__name__,
                      value.__repr__()))