private static function remapProperties(callable $inflector, array $properties): array {
    $mapped = [];

    foreach($properties as $property) {
      $prop_name = $inflector(substr($property->name, 3));

      if(!isset($mapped[$prop_name])) {
        $mapped[$prop_name] = ['get' => null, 'set' => null, 'itr' => null];
      }

      $mapped[$prop_name][substr($property->name, 0, 3)] = $property;
    }

    return $mapped;
  }