exposed types impl