initial split of api and internal types.