exports inner interface