hide APIs as much as I can