internal definitions are no longer used