renamed internal types to prevent collisions